Пакетный файл выдает ошибку, но когда каждая команда запускается отдельно в командной строке, она работает нормально - PullRequest
1 голос
/ 28 января 2012

Мой пакетный файл выдает ошибку при запуске, но когда я запускаю команды одну за другой вручную в командной строке, я не получаю ошибки Вот командный файл 'test.bat'.

echo "test"
cd "c:\packages"
pause
for /R c:\packages %F in (*.msi) do set /A servername=%~nxF
pause
echo %servername%
pause

Я получаю эту ошибку - "~ nxF в это время ничего не ожидал".

Я получил образец кода от https://stackoverflow.com/a/1100466/1105556 Я просто пытаюсь получить имя файла в c: \ packages & сохранить значение в переменной 'servername'. В папке только один файл (.msi) Я не могу понять, что не так. Может кто-нибудь решить загадку для меня?

1 Ответ

4 голосов
/ 28 января 2012

Вам нужно удвоить %% в пакетных файлах:

for /R c:\packages %%F in (*.msi) do set /A servername=%%~nxF
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...