Пакетный сценарий Windows: For ... в цикле для захвата вывода программы не работает - PullRequest
0 голосов
/ 07 сентября 2011

У меня есть пакетный скрипт для автоматического получения файла с удаленного FTP-сервера. Частью требования является то, что файл будет именоваться новой меткой даты каждый день, например, «File_90611.csv» У меня есть инструмент командной строки, который генерирует имя файла; который затем должен быть установлен в переменную, используя строку ниже:

for /f "delims=" %a in ('C:\BIN\YesterdayDateStamp.exe') do @set DATESTAMP=%a

Проблема заключается в следующем. Эта строка отлично работает при запуске из командной строки напрямую. Однако, когда я помещаю эту же строку в пакетный скрипт и запускаю его; Я получаю эту ошибку:

\ BIN \ YesterdayDateStamp.exe ') в это время было неожиданным.

Я удалил все в скрипте, кроме команд FOR ... IN, чтобы убедиться, что не было какого-либо конфликта; но даже с этим я все еще получаю ошибку.

Гуглил для ответа, но не имеет никаких подсказок. Есть идеи? Любой конструктивный вклад приветствуется.

Спасибо, Frank

1 Ответ

5 голосов
/ 07 сентября 2011

Когда for используется в пакетном файле, вам необходимо удвоить знаки процента перед именем переменной.

С for /?:

Для использованияДля команды FOR в пакетной программе укажите переменную %% вместо переменной%.Имена переменных чувствительны к регистру, поэтому% i отличается от% I.

...