Почему выполнение в оболочке дает другой результат, чем выполнение в пакетном скрипте?

Я хотел бы перечислить все файлы.csv в каталоге и его подкаталогах. Это хорошо работает, когда я запускаю это в терминале cmd:

for /f %a in ('dir /b /s *.csv') do (echo %a)

Когда я помещаю ту же строку кода в (иначе пустой) текстовый файл (.cmd) и запускаю этот файл.cmd, он выводит пустую строку, но не перечисляет никаких файлов.

Почему имеет значение, положил ли я команды в скрипт или ввел их напрямую (за один раз) в терминал?

Думая, что это может быть проблема с отложенным расширением, я также попытался for /f %a in ('dir /b /s *.csv') do (echo !a!), но это также не список файлов.

Есть идеи?

1 ответ

Удвойте символы процента в пакетном файле!

for /f %%a in ('dir /b /s *.csv') do (echo %%a)
Другие вопросы по тегам