1

Я пытаюсь выполнить команду в bat-файле, который отлично работает, когда я указываю целевой файл в команде (например: «c:\my work\month.stats.txt»).

Структура командной строки в точности так

 xxxxxxx.exe [command_parameter] c:\my work\month.stats.txt

Я хочу, чтобы он работал автоматически на каждом файле «.txt», существующем в определенной папке (например, папка «c:\my work»).

Есть способ сделать это?

Спасибо

1 ответ1

1

Чтобы применить исполняемую команду ко всему текстовому файлу, используйте цикл For /R Откройте командную строку в этой папке и введите:

For /R %Y in (*.txt) do (abc.exe %Y)

Или, если вы хотите применить команду в другой папке, добавьте путь к этой команде:

For /R "C:\path\folder" %Y in (*.txt) do (abc.exe %Y)

Вот подробности этой команды:

  • Синтаксис:

FOR /R [[drive:]path] %%parameter IN (set) DO command
  • Ключевой диск:

    • путь: дерево папок, в котором находятся файлы.
    • set: набор из одного или нескольких файлов. Подстановочные знаки должны быть использованы. Если (установлено) является символом точки (.), То FOR будет перебирать каждую папку.
    • команда: команда (ы) для выполнения, включая любые параметры командной строки.
    • Параметр %%: заменяемый параметр: в пакетном файле используйте %% G (в командной строке% G)

Источник: ss64: For /R

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