Символы экранирования командной строки Windows

Символы экранирования командной строки Windows

Короче говоря: мы получаем команду из скрипта и хотим выполнить ее с помощью оболочки Windows.

В настоящее время мы используем метод, аналогичный:

echo start & command & echo finish

Это работает нормально, если только команда сама по себе не содержит амперсанд, например

echo begin & if exist c:\temp.txt echo 1 & echo endне сможет записать «end», если файл не существует.

Эту проблему можно решить, изменив команду на echo begin & (if exist c:\temp.txt echo 1) & echo end, но тогда мы столкнемся с проблемами для команд, содержащих символы скобок, например

echo begin & (echo %PATH%) & echo endвыводит «\Hewlett-Packard\HP в этот раз был непредвиденным», поскольку в пути есть Program Files (x86).

Есть ли способ экранировать специальные символы из результата команды?

заранее спасибо

решение1

Проблема в пробелах в PATH, поэтому используйте кавычки.

  echo begin & (echo "%PATH%") & echo end

Связанный контент