1

Короче говоря: мы получаем команду из скрипта и хотим выполнить ее с помощью оболочки 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 print "\Hewlett-Packard\HP в это время был неожиданным." потому что у меня есть Program Files (x86) в пути.

Любой способ избежать специальных символов из результата команды?

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

1 ответ1

1

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .