Можно ли использовать подстановочные знаки с CALL в CMD?

3

У меня есть ситуация, когда я хотел бы иметь возможность запускать всего один или несколько командных файлов из другого командного файла, но CALL не будет принимать подстановочные знаки, чтобы я мог это сделать. Все вызываемые командные файлы будут иметь одинаковые имена, но сегодня я попробовал это раньше, и это не сработало. Мне просто интересно, как это сделать с помощью простых команд CMD.

Foebane
источник
1
Вы можете использовать команду FOR или команду FORFILES, чтобы найти все файлы в папке и что-то с ними сделать, например запустить их. У меня нет времени, чтобы написать вам правильный ответ сейчас, но Google поможет вам с любой из команд, и SuperUser достаточно на этом тоже. ForFiles может работать с масками и находить файлы по дате их создания, тогда как с файлами легче что-то делать.
LPChip

Ответы:

4

Используйте команду FOR, чтобы зациклить каждый дочерний пакетный файл.

FOR %%B IN sub*.bat DO CALL %%B

Для - Перебирать файлы - Windows CMD - SS64

Условно выполнить команду на несколько файлов.

Syntax
      FOR %%parameter IN (set) DO command

Key
   set         : A set of one or more files, separated by any standard delimiter.
                 Wildcards can be used.

   command     : The command to carry out, including any command-line parameters.

   %%parameter : A replaceable parameter:
                 e.g. in a batch file use %%G 
                      (on the command line %G)

...

Хотя можно использовать подстановочные знаки, альтернативный метод обработки файлов состоит в том, чтобы позволить FOR / F обрабатывать выходные данные команды 'DIR / b'. Это может быть полезно, когда вы хотите использовать параметры DIR, такие как сортировка.

Стивен
источник