Как сказать FORFILES для выполнения команды на пути? - PullRequest
7 голосов
/ 03 февраля 2009

Я что-то упускаю (очевидно?) Из-за экранирования строк или пробелов в следующей пакетной команде Windows Server 2k3.

FORFILES -m *.wsp -c "CMD /C C:\Program^ Files\Common^ Files\Microsoft^ Shared\web^ server^ extensions\12\bin\stsadm.exe^ -o^ addsolution^ -filename^ @FILE"

Приводит к следующей ошибке

'C: \ Program Files \ Common Files \ Microsoft Shared \ расширения веб-сервера \ 12 \ bin \ stsadm.exe -o addolution -filename "foobar.wsp"' не распознается как внутренняя или внешняя команда, работающая программа или пакетный файл.

Но я не могу понять, почему. Я работаю на Мистер. Прекрасная документация Саймона Шеппарда

Ответы [ 2 ]

10 голосов
/ 04 февраля 2009

Путь должен быть заключен в кавычки, а кавычка должна быть экранирована.

FORFILES -m *.wsp -c "CMD /C ^0x22C:\Program^ Files\Common^ Files\Microsoft^ Shared\web^ server^ extensions\12\bin\stsadm.exe^0x22 -o^ addsolution^ -filename^ @FILE"

Сотрудник предложил использовать гекс для ", и я в конце концов выяснил, что гексу нужно убежать.

2 голосов
/ 07 марта 2009

Другой возможный ответ - использовать старые 8.3 имена, которые вы получите, выполнив команду dir / X.

Например: C: \ PROGRA ~ 1 вместо C: \ Program Files.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...