Я пробовал вот так

pushd \\somedrive.se\Install\Paket\XXX\
echo "start..."
for /f %i in ('dir /a:d /b bu* ') do echo /q %i
popd

и получил этот вывод при запуске из скрипта:

Z:\Paket\XXX>echo "start..."
"start..."
/b was unexpected at this time.
Z:\Paket\XXX>for /f d /b bu* ') do echo /q i

Но если я делаю это прямо в командной строке, это работает?

Z:\Paket\XXX>for /f %i in ('dir /a:d /b bu* ') do echo /q %i
Z:\Paket\XXXX>echo /q bu.1_2.zip
/q bu.1_2.zip

Что я делаю неправильно?

1 ответ1

1

Это не связано с pushd .
Вам нужно использовать двойные знаки процента при запуске из пакета (как указано непосредственно из строки cmd.), Поэтому он должен выглядеть следующим образом:
for /f %%i in ('dir /a:d /b bu* ') do echo /q %%i

Справочник MS: https://technet.microsoft.com/en-us/library/cc754900.aspx

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