Выполнение файлов bat по одному

batch-file

144 просмотра

2 ответа

То, что я получил, является списком файлов летучей мыши:

  • file1.bat
  • file2.bat
  • ...
  • file29.bat

Мне нужно, чтобы они бегали один за другим. Имеется в виду, когда начинается file1.batзакрытие file2.batи так далее.

Я пробовал это, но это не работает должным образом:

start /wait call file1.bat 
start /wait call file2.bat
Автор: Saul Источник Размещён: 08.11.2019 11:30

Ответы (2)


0 плюса

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

Если это то, что вы хотите сделать; добавьте эти команды к каждому из файлов:

start file2.bat
exit

Конечно, вы захотите изменить start file2.batна start file3.batи так для каждого файла.

Если вы хотите file1.batуправлять всеми файлами, я не думаю, что это возможно в пакетном режиме.

Автор: Kivitoe Размещён: 20.08.2016 04:53

0 плюса

Вы не описали, как именно он не делает то, что ожидал. Я предполагаю, что происходит то, что вам приходится выключать каждый сценарий, прежде чем будет продолжен следующий.

Документация startговорит:

WAIT        Start application and wait for it to terminate.
command/program
            If it is an internal cmd command or a batch file then
            the command processor is run with the /K switch to cmd.exe.
            This means that the window will remain after the command
            has been run.

Если вы должны использовать, startто вы можете заставить его использовать /cпереключатель, который автоматически закроет окно, как только это будет сделано:

start /wait cmd /c call file1.bat

Я не совсем уверен, что вы достигнете чего-либо с помощью, callтак что это должно быть эквивалентно просто:

start /wait cmd /c file1.bat

Использование startсоздает новое окно для каждой программы, и вы можете просто захотеть, чтобы оно запускалось в одном окне командного процессора.

Как отметил Биффин, вы можете просто перечислить их все в мастер-сценарии, и они будут работать по порядку.

call file1.bat
call file2.bat
...
call file29.bat

И сокращение для этого:

for /l %%f in (1; 1; 29) do call file%%f.bat

Не забудьте удвоить эти проценты в пакетном скрипте, но не в командной строке.

Этот вопрос может объяснить некоторые неожиданные действия, которые вы видели.

Как запустить несколько файлов .BAT в файле .BAT

Автор: shawnt00 Размещён: 20.08.2016 07:51
Вопросы из категории :
32x32