Udostępnij za pośrednictwem


Cmd

Uruchamia nowe wystąpienie interpretera poleceń cmd.exe. Jeśli nie określono parametrów, cmd wyświetla informacje o wersji i prawach autorskich systemu operacyjnego.

Uwaga / Notatka

Zachęcamy użytkowników poszukujących bardziej zaawansowanych możliwości do eksplorowania programu PowerShell w celu uzyskania ulepszonego skryptu i automatyzacji.

Składnia

cmd [/c|/k] [/s] [/q] [/d] [/a|/u] [/t:{<b><f> | <f>}] [/e:{on | off}] [/f:{on | off}] [/v:{on | off}] [<string>]

Parametry

Parametr Opis
/c Wykonuje polecenie określone przez <string> , a następnie zamyka procesor poleceń.
/k Wykonuje polecenie określone przez <string> i utrzymuje procesor poleceń uruchomiony.
/ s W przypadku użycia z elementem /c lub /kwyzwala specjalne reguły bez analizowania, które usuwają pierwsze i ostatnie cudzysłowy () wokół " elementu ,<string> ale pozostawia resztę polecenia bez zmian.
/q Wyłącza echo.
/d Wyłącza wykonywanie poleceń AutoRun.
/a Formatuje dane wyjściowe polecenia jako American National Standards Institute (ANSI).
/u Formatuje dane wyjściowe polecenia jako Unicode.
/t:{<b><f> | <f>} Ustawia kolory tła (b) i pierwszego planu (f).
/e:on Włącza rozszerzenia poleceń.
/e:off Wyłącza rozszerzenia poleceń.
/f:on Włącza uzupełnianie nazw plików i katalogów.
/f:off Wyłącza uzupełnianie nazw plików i katalogów.
/v:on Włącza opóźnione rozszerzanie zmiennych środowiskowych.
/v:off Wyłącza opóźnione rozszerzanie zmiennych środowiskowych.
<string> Określa polecenie, które chcesz wykonać.
/? Wyświetla pomoc w wierszu polecenia.

W poniższej tabeli wymieniono prawidłowe cyfry szesnastkowe, których można użyć jako wartości i <b><f>:

Wartość Kolor
0 Czarny
1 Niebieski
2 Zielony
3 Aqua
4 Czerwony
5 Purpura
6 Żółty
7 Biała
8 Szary
9 Jasnoniebieski
a Jasnozielony
b Jasny akwakwaryz
Bez kontekstu nie można zapewnić adekwatnego tłumaczenia litery "c". Jasnoczerwony
d Jasnopurpurowy
e Jasnożółty
f Jasny biały

Uwagi

  • Aby przekierować dane wyjściowe polecenia do danych wejściowych innego polecenia, użyj operatora potoku (|). Przykład:

    <command1> | <command2>
    
  • Operator podwójnego potoku (||) służy do wykonywania następnego polecenia tylko wtedy, gdy poprzednie polecenie zakończy się niepowodzeniem. W danym scenariuszu command2 jest wykonywany tylko w przypadku command1 awarii. Przykład:

    <command1> || <command2>
    
  • Aby przekierować dane wyjściowe polecenia do pliku, użyj znaku nawiasu kątowego > większego niż kąt. Przykład:

    <command1> > <file1.txt>
    
  • Aby grupować lub zagnieżdżać wiele poleceń, użyj polecenia &. Przykład:

    <command1> & <command2>
    
  • Aby użyć wielu poleceń dla <string>polecenia , rozdziel je separatorem &&poleceń . Przykład:

    <command1> && <command2> && <command3>
    

    Uwaga / Notatka

    Jeśli używasz &&polecenia , następujące && polecenie jest uruchamiane tylko wtedy, gdy poprzednie polecenie zakończy się pomyślnie. Cmd Wykonuje pierwsze polecenie i przechodzi do następnego tylko wtedy, gdy poprzednie polecenie zakończyło się pomyślnie. W przeciwnym razie, jeśli poprzednie polecenie zakończy się niepowodzeniem, kolejne polecenia nie zostaną wykonane.

  • Znaki ampersand &, potoku |i nawiasy ( ) są znakami specjalnymi, które muszą być poprzedzone znakiem ^ ucieczki lub cudzysłowem podczas przekazywania ich jako argumentów.

  • Jeśli polecenie zakończy operację pomyślnie, zwraca kod zakończenia o wartości zero (0) lub bez kodu zakończenia.

  • Jeśli ścieżka katalogu, pliki lub jakiekolwiek informacje, które podajesz, zawiera spacje, należy użyć podwójnych cudzysłowów (" ") wokół tekstu, takiego jak "Computer Name". Przykład:

    mkdir Test && mkdir "Test 2" && move "Test 2" Test
    
  • Należy użyć znaków cudzysłowu wokół następujących znaków specjalnych: & <> [ ] | { } ^ = ; ! ' + , ' ~ [biały znak].

  • Jeśli określisz /c procesy lub /k, cmd pozostałe znaki cudzysłowu <string>zostaną zachowane tylko wtedy, gdy zostaną spełnione wszystkie następujące warunki:

    • Nie używasz również polecenia /s.
    • Należy użyć dokładnie jednego zestawu cudzysłowów.
    • Nie używasz żadnych znaków specjalnych w cudzysłowie, na przykład: & <> ( ) @ ^ |.
    • W cudzysłowie jest używany co najmniej jeden znak odstępu.
    • Znaki <string> cudzysłowu to nazwa pliku wykonywalnego.

    Jeśli poprzednie warunki nie są spełnione, jest przetwarzane przez sprawdzenie pierwszego znaku, aby sprawdzić, <string> czy jest to cudzysłów otwierający. Jeśli pierwszy znak jest znakiem cudzysłowu otwierającego, jest on usuwany wraz z cudzysłowem zamykającym. Każdy tekst po cudzysłowie zamykającym jest zachowywany.

  • Jeśli nie określisz /dparametru , cmd wyszukaj następujące podklucze rejestru:

    • HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun\REG_SZ

    • HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun\REG_EXPAND_SZ

    Jeśli istnieją co najmniej jeden podklucze rejestru, są one wykonywane przed wszystkimi innymi zmiennymi.

  • Rozszerzenia poleceń dla określonego procesu można wyłączyć przy użyciu polecenia /e:off. Można włączyć lub wyłączyć rozszerzenia dla wszystkich cmd opcji wiersza polecenia na komputerze lub sesji użytkownika, ustawiając następujące wartości REG_DWORD :

    • HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\EnableExtensions\REG_DWORD

    • HKEY_CURRENT_USER\Software\Microsoft\Command Processor\EnableExtensions\REG_DWORD

    Ustaw wartość REG_DWORDna wartość 0×1 (włączona) lub 0×0 (wyłączona) w rejestrze przy użyciu Regedit.exe. Ustawienia określone przez użytkownika mają pierwszeństwo przed ustawieniami komputera, a opcje wiersza polecenia mają pierwszeństwo przed ustawieniami rejestru.

    Ostrzeżenie

    Nieprawidłowa edycja rejestru może poskutkować poważnym uszkodzeniem systemu. Przed wprowadzeniem zmian w rejestrze należy utworzyć kopię zapasową wszystkich wartościowych danych na komputerze.

  • Po włączeniu rozszerzeń poleceń mają wpływ następujące polecenia:

    • assoc
    • call
    • chdir (cd)
    • color
    • del (erase)
    • endlocal
    • for
    • ftype
    • goto
    • if
    • mkdir (md)
    • popd
    • prompt
    • pushd
    • set
    • setlocal
    • shift
    • start (obejmuje również zmiany w zewnętrznych procesach poleceń)
  • Jeśli włączysz opóźnione rozszerzanie zmiennej środowiskowej, możesz użyć znaku wykrzyknika (!), aby zastąpić wartość zmiennej środowiskowej w czasie wykonywania.

  • Uzupełnianie nazw plików i katalogów nie jest domyślnie włączone. Możesz włączyć lub wyłączyć uzupełnianie nazw plików dla określonego cmd procesu polecenia za pomocą polecenia /f:{on | off}.

  • Można włączyć lub wyłączyć uzupełnianie nazw plików i katalogów dla wszystkich procesów cmd polecenia na komputerze lub sesji logowania użytkownika, ustawiając następujące wartości REG_DWORD :

    • HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\CompletionChar\REG_DWORD

    • HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\PathCompletionChar\REG_DWORD

    • HKEY_CURRENT_USER\Software\Microsoft\Command Processor\CompletionChar\REG_DWORD

    • HKEY_CURRENT_USER\Software\Microsoft\Command Processor\PathCompletionChar\REG_DWORD

    Aby ustawić wartość REG_DWORD , uruchom Regedit.exe i użyj wartości szesnastkowej znaku kontrolki dla określonej funkcji (na przykład 0×9 to TAB, a 0×08 to BACKSPACE. Użyj wartości [0×20] dla białych znaków, ponieważ nie jest to prawidłowy znak kontrolny. Ustawienia określone przez użytkownika mają pierwszeństwo przed ustawieniami komputera, a opcje wiersza polecenia mają pierwszeństwo przed ustawieniami rejestru.

    Ostrzeżenie

    Nieprawidłowa edycja rejestru może poskutkować poważnym uszkodzeniem systemu. Przed wprowadzeniem zmian w rejestrze należy utworzyć kopię zapasową wszystkich wartościowych danych na komputerze.

  • Jeśli włączysz uzupełnianie nazw plików i katalogów przy użyciu polecenia /f:on, użyj CTRL+D w celu ukończenia nazw katalogów i ctrl+F w celu ukończenia nazwy pliku. Jedyną różnicą między kombinacjami CTRL+D i CTRL+F jest to, że ctrl+D pasuje tylko do nazw katalogów i CTRL+F pasuje zarówno do nazw plików, jak i katalogów. Jeśli używasz uzupełniania nazw plików i katalogów we wbudowanych poleceniach cdkatalogu , mdlub rd, zakłada się ukończenie katalogu.

  • Naciśnięcie CTRL+D lub CTRL+F przetwarza uzupełnianie nazwy pliku i katalogu. Te funkcje kombinacji dołączają symbol wieloznaczny do <string> elementu , jeśli nie istnieje, skompiluj listę pasujących ścieżek, a następnie wyświetl pierwszą pasującą ścieżkę. Jeśli żadna ze ścieżek nie jest zgodna, funkcja uzupełniania nazw plików i katalogów jest wyświetlana i nie zmienia wyświetlania.

    • Aby przejść przez listę pasujących ścieżek, naciśnij CTRL+D lub CTRL+F wielokrotnie.
    • Aby przejść przez listę do tyłu, naciśnij SHIFT i CTRL+D lub CTRL+F jednocześnie.
    • Aby odrzucić zapisaną listę pasujących ścieżek i wygenerować nową listę, edytuj <string> i naciśnij CTRL+D lub CTRL+F.
    • Jeśli przełączasz się między ctrl+D i CTRL+F, zapisana lista pasujących ścieżek zostanie odrzucona i zostanie wygenerowana nowa lista.
  • Uzupełnianie nazw plików i katalogów poprawnie przetwarza nazwy plików, które zawierają białe znaki lub znaki specjalne, jeśli umieszczasz znaki cudzysłowu wokół pasującej ścieżki.

  • W przypadku przetwarzania uzupełniania nazwy pliku i katalogu z poziomu <string>elementu w punkcie, w <string> którym zostało przetworzone ukończenie, każda część ścieżki po prawej stronie kursora zostanie odrzucona.

Korzystanie ze zmiennych środowiskowych

Środowisko cmd powłoki poleceń jest definiowane przez zmienne, które określają zachowanie powłoki poleceń i systemu operacyjnego. Zachowanie środowiska powłoki poleceń lub całego środowiska systemu operacyjnego można zdefiniować przy użyciu dwóch typów zmiennych środowiskowych, systemu i środowiska lokalnego. Zmienne środowiskowe systemu definiują zachowanie globalnego środowiska systemu operacyjnego. Lokalne zmienne środowiskowe definiują zachowanie środowiska bieżącego wystąpienia programu cmd.

Tylko użytkownicy z uprawnieniami administracyjnymi mogą zmieniać zmienne systemowe. Te zmienne są najczęściej używane w skryptach logowania. Lokalne zmienne środowiskowe są dostępne tylko wtedy, gdy użytkownik, dla którego zostały utworzone, jest zalogowany na komputerze. Zmienne lokalne ustawione w HKEY_CURRENT_USER hive są prawidłowe tylko dla bieżącego użytkownika, ale definiują zachowanie globalnego środowiska systemu operacyjnego.

Poniższa lista zawiera opis różnych typów zmiennych w kolejności malejącej pierwszeństwa:

  1. Wbudowane zmienne systemowe.
  2. Zmienne systemowe znalezione w HKEY_LOCAL_MACHINE hive.
  3. Zmienne lokalne znalezione w HKEY_CURRENT_USER hive.
  4. Wszystkie zmienne środowiskowe i ścieżki ustawione w pliku Autoexec.bat.
  5. Wszystkie zmienne środowiskowe i ścieżki ustawione w skrypcie logowania (jeśli istnieje).
  6. Zmienne używane interaktywnie w skrycie lub pliku wsadowym.

W powłoce poleceń każde wystąpienie cmd dziedziczy środowisko aplikacji nadrzędnej. W związku z tym można zmienić zmienne w nowym cmd środowisku bez wpływu na środowisko aplikacji nadrzędnej.

Zmienne środowiskowe w środowisku można wyświetlić, uruchamiając jedno z następujących poleceń:

set
Get-ChildItem Env:

Ustawianie zmiennych środowiskowych

Aby wyświetlić zmienną, wpisz:

set <VariableName>

Aby dodać zmienną, wpisz:

set <VariableName>=<value>

Aby usunąć zmienną, wpisz:

set <VariableName>=

Większość znaków można używać jako wartości zmiennych, w tym białych znaków. Jeśli używasz znaków <specjalnych , | >, &, lub ^, musisz poprzedzić je znakiem ^ ucieczki lub podwójnym cudzysłowem. Jeśli używasz podwójnych cudzysłowów, są one dołączane jako część wartości, ponieważ wszystko, co następuje po znaku równości, jest traktowane jako wartość. Rozważ następujące przykłady:

Aby utworzyć wartość New&Namezmiennej , wpisz:

set <VariableName>=New^&Name

Aby utworzyć wartość "New&Name"zmiennej , wpisz:

set <VariableName>="New&Name"

Jeśli w wierszu polecenia wpiszesz set <VariableName>=New&Name (bez kareci ^ lub cudzysłowów), w wierszu polecenia może zostać wyświetlony następujący komunikat o błędzie:

"'Name' is not recognized as an internal or external command, operable program or batch file."

W nazwach zmiennych nie jest uwzględniana wielkość liter. set Wyświetla jednak zmienną dokładnie tak, jak została wpisana. Możesz połączyć wielkie i małe litery w nazwach zmiennych, aby kod był bardziej czytelny, na przykład UserName.

Uwaga / Notatka

  • Maksymalny rozmiar zmiennej środowiskowej to 8192 bajty.
  • Maksymalny całkowity rozmiar wszystkich zmiennych środowiskowych, w tym nazw, wartości i znaków równości, wynosi 65 536 znaków dla procesu.

Podstawianie wartości zmiennych środowiskowych

Aby zastąpić wartości zmiennych w wierszu polecenia lub skryptach, należy ująć nazwę zmiennej w znaki procentowe (%VariableName%). Dzięki temu można cmd odwoływać się do wartości zmiennej zamiast traktować ją jako tekst literału. Po uruchomieniu cmd skryptu zamienia wystąpienia zmiennej na jego wartość. Na przykład użycie %USERNAME% w skrypcie automatycznie zastępuje rzeczywistą nazwę użytkownika. Podstawianie zmiennych nie jest rekursywne; cmd sprawdza zmienne tylko raz.