Kolory w CMD – praktyczne zastosowanie
Zmiana domyślnej kolorystyki CMD to dla jednych zwykła kwestia estetyczna, dla innych sposób na podkreślenie swojej indywidualności (być może podkreślenie, że jest się geek’em). Zmiana kolorów w skrypcie może mieć jednak bardzo praktyczne zastosowanie.
Jak zmienić kolory w bieżącym oknie CMD?
Do zmiany kolorów w aktywnym oknie CMD lub w bieżącym skrypcie służy polecenie „color”. W czasach popularności filmu Matrix obowiązkowo ustawiało się zielone napisy na czarnym tle i w hołdzie dla braci Wachowskich taką kolorystykę stworzymy poleceniem:
Color 0a
Po słowie „color” podajemy jedną lub dwie cyfry heksadecymalne. Jeśli podamy jedną, zmienimy tylko kolor czcionki. Jeśli podamy dwie, to pierwsza będzie oznaczała tło, a druga kolor czcionki. Oto możliwe wartości:
1 = Niebieski
2 = Zielony
3 = Błękitny
4 = Czerwony
5 = Purpurowy
6 = Żółty
8 = Szary
9 = Jasnoniebieski
A = Jasnozielony
B = Jasnobłękitny
C = Jasnoczerwony
D = Jasnopurpurowy
E = Jasnożółty
Praktyczne zastosowanie #1: skupienie uwagi i podkreślenie ważności
Wspominając mój artykuł o bezpiecznych plikach wsadowych, w którym mówiłem jak zabezpieczyć swoje skrypty przed pechowym kliknięciem (komentarze, pause, timeout ) albo zwrócić uwagę użytkownika (komentarz i oczekiwanie na kliknięcie klawisza) dzisiaj zaproponuje bardzo tani, ale sprawdzony chwyt: pokolorujmy komunikat tak, aby użytkownik zechciał go przeczytać:
color 9e
echo Startuje instalacja nowego Adobe Acrobat Reader.
pause
Jeśli Wasi użytkownicy przestali reagować na czarne okienko, pokolorujmy je na czerwono, tak aby instynktownie wzbudzić w nich lęk 🙂
color 4e
echo Startuje instalacja nowego klienta VPN.
echo.
echo Komputer zostanie uruchomiony ponownie!
echo.
Pause
Praktyczne zastosowanie #2: Rozpoznanie wyniku – zielony to dobrze, a czerwony źle 🙂
A może warto, aby kolor okienka był zależny od jakiegoś warunku? Na przykład od tego, czy na komputerze znajduje się dany plik:
if exist %systemroot%\System32\speceit.dll (color 26) else (color 4e)
echo Jaki kolor, taki wynik.
echo ..dalsza czesc skryptu……
pause
..albo w zależności od błędu zwróconego przez poprzedni skrypt /program:
if %errorlevel% 0 (color 26) else (color 4e)
echo Jaki kolor, taki wynik.
echo ..dalsza czesc skryptu……
pause
Oczywiście istnieje tu mnóstwo możliwości: kolorowanie na czerwono wyłącznie gdy wystąpi błąd, wielokrotna zmiana koloru w trakcie działania skryptu itd. itp.. Jeżeli znaliście polecenie color, to pewnie przestaliście czytać na samym początku. Jeśli nie mieliście pomysłu jak praktyczne zastosować zabawę kolorami – mam nadzieję, że kogoś udało mi się zainspirować 🙂
cmd /K color 0a
Dobra glaca wariacie
jak domyślnie przez GPO zmienić color CMD na „0A” aby na kazdym serwerze gdzie zaloguje się Administrotor było takie ustawienie CMD oraz jak zmienić domyślną czcionkę CMD i jej wielkość poprzez GPO?
Fajna sprawa z tymi kolorami, ale mam jeszcze takie pytanie: jak zmienić komunikat wyświetlany przez komendę pause z „Aby kontynuować, naciśnij dowolny klawisz” na np. „Aby zakończyć pracę, naciśnij dowolny klawisz”. Oczywiście można przed pause dać echo „mój_komunikat” ale dwa komunikaty po sobie są trochę mało czytelne 🙂
Ok, już znalazłem: pause > nul