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:

0 = Czarny
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ć:

@echo off
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 :)

@echo off
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:

@echo off
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:

@echo off
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ć :)


Podobne Tematy:

Tags:
  • Szopen

    cmd /K color 0a

  • Lukasz

    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?

  • gajowy

    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 :)

    • gajowy

      Ok, już znalazłem: pause > nul