В командной строке Windows можно использовать специальные символы, которые позволяют вводить несколько команд одновременно и управлять работой команд в зависимости от результатов их выполнения. С помощью таких символов условной обработки можно содержание небольшого пакетного файла записать в одной строке и выполнить полученную составную команду.
Используя символ амперсанда &, можно разделить несколько утилит в одной командной строке, при этом они будут выполняться друг за другом. Например, если набрать команду DIR & PAUSE & COPY /? и нажать клавишу <Enter>, то вначале на экран будет выведено содержимое текущего каталога, а после нажатия любой клавиши – выведена встроенная справка команды COPY.
Символ ^ позволяет использовать командные символы как текст, то есть при этом происходит игнорирование значения специальных символов.
Например, если ввести в командной строке
ECHO Абв & COPY /?
и нажать клавишу <Enter>, то произойдет выполнение подряд двух команд: ECHO Абв и COPY /? (команда ECHO выводит на экран символы, указанные в командной строке после нее).
После выполнения команды
ECHO Абв ^& COPY /?
на экран будет выведено Абв & COPY /?
В этом случае просто выполняется одна команда ECHO с соответствующими параметрами.
Условная обработка команд в Windows осуществляется с помощью символов && и || следующим образом. Двойной амперсанд && запускает команду, стоящую за ним в командной строке, только в том случае, если команда, стоящая перед амперсандами была выполнена успешно. Например, если в корневом каталоге диска C: есть файл plan.txt, то выполнение команды TYPE C:plan.txt && DIR приведет к выводу на экран этого файла и содержимого текущего каталога. Если же файл C:plan.txt не существует, то команда DIR выполняться не будет.
Два символа || осуществляют в командной строке обратное действие, т.е. запускают команду, стоящую за этими символами, только в том случае, если команда, идущая перед ними, не была успешно выполнена. Таким образом, если в предыдущем примере файл C:plan.txt будет отсутствовать, то в результате выполнения строки TYPE C:plan.txt || DIR на экран выведется содержимое текущего каталога.
Условная обработка действует только на ближайшую команду, то есть в команде
TYPE C:plan.txt && DIR & COPY /?команда COPY /? запустится в любом случае, независимо от результата выполнения команды TYPE C:plan.txt.
Несколько команд можно сгруппировать в командной строке с помощью скобок.
Например, есть две команды:
TYPE C:plan.txt && DIR & COPY /?
TYPE C:plan.txt && (DIR & COPY /?)
В первой из них символ условной обработки && действует только на команду DIR, во второй - одновременно на две команды: DIR и COPY.