У меня есть командный файл, который вызывает другой командный файл, который существует в каталоге PATH (в основном вызывая исполняемый файл с дополнительными переключателями.)
: bar.bat:
foo.bat file1.txt
foo.bat file2.txt
etc.
В foo.bat:
foo.exe -t -s %1
bar.bat выполняет первую команду, но немедленно завершает работу (т.е. работает над file1.txt только).
Как я могу заставить этот командный файл вызывать другой командный файл более одного раза?
Используйте ключевое слово CALL:
call foo.bat file1.txt
call foo.bat file2.txt
В дополнение к ответу @ splattne используйте exit /b
в CALL
ed, если вам нужно вернуться раньше.
Другой вариант (для совместимости с DOS до версии 3.3 :-)) - вызвать командный процесс с дочерним параметром (/ c) и именем другого командного файла для обработки. Это также будет выполнять вызов вместо цепочки и даже будет работать на действительно древних машинах (на случай, если кто-то столкнется с этим и позаботится). :-)
@echo off
echo WbLegalReport.cmd
я:
компакт-диск I: \ CFS \ Batch \ jarDir
эхо% CD%
WbLegalReport.cmd
эхо% CD%
эхо WatchResrAddDeleted.cmd
эхо% CD%
WatchRestrAddDeleted.cmd
эхо% CD%
Я пытаюсь последовательно вызвать эти два командных файла.
Невозможно это сделать.
Помогите, пожалуйста.
На самом деле он не работает в дочернем сценарии, поскольку элемент управления не возвращается к основному сценарию
Санкет, не вызывайте командный файл напрямую. Используйте команду «ЗВОНИТЬ». Видеть Splattneвот пример.