Програма CMD (cmd.exe) - це стандартний інтерпретатор команд Windows XP, що виконує в середовищі Windows ті ж функції, що і програма command.com в середовищі MS-DOS. Саме програма CMD завантажується у вікні командного рядка, і саме ця програма відповідає за виконання директив командної консолі Windows і запуск пакетних файлів.
При запуску Командного рядка з Головного меню CMD завантажується з використанням параметрів запуску за замовчуванням. Щоб змінити будь-які настройки інтерпретатора команд, можна запустити його ще раз з самої Командного рядка з використанням наступної Директиви:
CMD [/ A | / U] [/ Q] [/ D] [/ E: ON або / E: OFF] [/ F: ON або / F: OFF]
[/ V: ON або / V: OFF] [[/ S] [/ C або / K] рядок]
/ C- виконання команди, заданої в якості аргументу рядок, з подальшим завершенням роботи CMD;
/ K- виконання команди, заданої в якості аргументу рядок, без подальшого завершення роботи CMD;
/ S- змінити режим роботи CMD після виконання команди;
/ Q- вимкнути видимість команд на екран (ECHO OFF);
/ D- відключення виконання команд AutoRun з реєстру (см.далее);
/ A- виводити результати виконання команд в форматі ANSI;
/ U- виводити результати виконання команд в форматі Unicode;
/ T: цв- вибір кольору тексту і фону для вікна CMD (див. Опис команди COLOR);
/ E: ON- дозволити розширену обробку команд;
/ E: OFF- заборонити розширену обробку команд;
/ F: ON- розпізнавати символи завершення імен файлів і папок;
/ F: OFF- нерозпізнаних символи завершення імен файлів і папок;
/ V: ON- дозволити розширену обробку змінних середовища;
/ V: OFF- заборонити розширену обробку змінних середовища.
Якщо в рядку виклику інтерпретатора команд CMD вказано ключ / C або / K, то інша частина командного рядка, наступна після ключа, інтерпретується як виклик команди, яка буде оброблена після завантаження нової копії інтерпретатора. Якщо ви хочете вказати в одному рядку кілька різних команд, вони повинні бути розділені символом і укладені в лапки. Більш того, при виклику внутрішніх команд CMD директива / X обробляється так само, як команда / E: ON, / Y - так само, як / E: OFF, а / R - так само, як і / C. Символи лапок в командному рядку обробляються за такими правилами:
1. Лапки зберігаються і обробляються, якщо:
1) в командному рядку відсутня ключ / S;
2) в командному рядку присутні відкривають та закривають лапки;
3) між лапками відсутні спеціальні символи , <,>, (,), @, ^, |;
4) між лапками є один або кілька пробілів;
5) рядок, укладена в лапки, викликає внутрішню директиву CMD або пакетний файл.
2. Якщо перераховані вище умови не дотримані, перший і останній символи лапок в рядку видаляються, а весь текст, наступний за другим символом лапок, зберігається і обробляється.
У разі якщо при виклику інтерпретатора команд CMD в командному рядку не вказано ключ / D, система автоматично перевіряє значення ключів REG_SZ або REG_EXPAND_SZ в наступних розділах системного реєстру Windows:
HKEY_ LOCAL_MACHINE \ Software \ Microsoft \ Command Processor \ AutoRun,
HKEY_ CURRENT_USER \ Software \ Microsoft \ Command Processor \ AutoRun.
Якщо значення будь-якого з цих ключів присутній, при запуску CMD вони автоматично виконуються.
HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Command Processor \
EnableExtensions,
HKEY_CURRENT_USER \ Software \ Microsoft \ Command Processor \
EnableExtensions.
HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Command Processor \
DelayedExpansion,
HKEY_CURRENT_USER \ Software \ Microsoft \ Command Processor \
DelayedExpansion.
Якщо режим відкладеного розширення змінних середовища включений, для заміни поточного значення змінної середовища під час виконання команди можна використовувати символ. (знак оклику).
HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Command Processor \
CompletionChar,
HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Command Processor \
PathCompletionChar,
HKEY_CURRENT_USER \ Software \ Microsoft \ Command Processor \
CompletionChar,
HKEY_CURRENT_USER \ Software \ Microsoft \ Command Processor \
PathCompletionChar.
Шістнадцяткові значення ключа REG_DWORD визначаються в даному випадку кодом керуючого символу, призначеним для кожної функції, наприклад 0'4 для Ctrl + D або 0'6 для Ctrl + F. У разі якщо режим завершення включений за допомогою ключа / F: ON, за замовчуванням відповідних функціях призначаються керуючі символи Ctrl + D для імен папок і Ctrl + F для імен файлів. Ви можете відключити будь-який із символів завершення через системний реєстр Windows, призначивши відповідного ключу реєстру шістнадцятковий код символу «пропуск» (0'20).
Після увімкнення режиму завершення імен файлів і папок функція завершення обробляє рядок шляху зліва від точки введення, додає до неї символ шаблону, якщо такий відсутній в рядку виклику, потім будує список шляхів відповідно до отриманого визначенням. Потім інтерпретатора повертається значення першого елемента сформованого списку. У разі якщо список не містить жодного елемента, подається звуковий сигнал і повторний виклик того ж самого спеціального символу призводить до циклічного перебору всіх відповідних шляхів. Натискання клавіші Shift в процесі введення керуючого символу дозволяє переглядати список шляхів в зворотному порядку. Якщо змінити виведений шлях, а потім знову ввести керуючий символ, збережений список очищається і будується новий список шляхів. Те ж саме відбувається при перемиканні з одного символу завершення на інший. Принцип побудови шляхів для імені файлу відрізняється від принципу побудови шляху для папки тим, що при використанні символу завершення файлу для побудови списку відповідності використовується як шлях, так і ім'я файлу, а при використанні символу завершення папки використовується тільки шлях. Коли Ви телефонуєте з консолі команд управління папками (CD, MD або RD) інтерпретатор автоматично підставляє символ завершення папок.
З метою забезпечити коректну обробку символів завершення для всіх шляхів рекомендується укладати шляху, що містять імена файлів і папок з пробілами, в лапки. Крім символу пробіл, рекомендується брати в лапки шляху, що містять такі спеціальні символи: () [] <> ^ =;. '+. `