Командная строка - командный файл, вызывающий другой командный файл


13

У меня есть пакетный файл, который вызывает другой пакетный файл, который существует в каталоге PATH (в основном вызывает исполняемый файл с дополнительными переключателями.)

: bar.bat:
foo.bat file1.txt
foo.bat file2.txt
etc.

В foo.bat:

foo.exe -t -s %1

bar.bat выполняет первую команду, но выходит немедленно (т.е. работает только с file1.txt ).

Как я могу сделать этот пакетный файл для вызова другого пакетного файла более одного раза?

Ответы:


14

Используйте ключевое слово CALL:

call foo.bat file1.txt
call foo.bat file2.txt

1
<скопировано из ответа Duncan Smart, просто чтобы сохранить его вместе> В дополнение к ответу @ splattne, используйте exit / b в пакетном файле CALLed, если вам нужно вернуться рано.
Брэд Брюс

1
Вы также можете использовать, goto :eofчтобы вернуться рано. exit /bобычно требуется только если вам нужен код возврата.
Джои

Я не знаю почему, но я изо всех сил пытаюсь заставить это работать, я попробовал и то exit /bи другое goto: eof. Можно ли добавлять вывод CALLed bat? call foo.bat > myfile
SSH в этом

4

В дополнение к ответу @ splattne, используйте exit /bв CALLкомандном файле ed, если вам нужно вернуться рано.


2

Другой вариант (для совместимости с DOS до версии 3.3 :-)) - вызвать командный процесс с опцией child (/ c) и именем другого пакетного файла для обработки. Это также будет делать вызов вместо цепочки, и даже будет работать на действительно древних машинах (на тот случай, если кто-то столкнется с этим и будет заботиться). :-)


0

@ эхо выключено

echo WbLegalReport.cmd

я:

CD I: \ CFS \ Batch \ jarDir

эхо% CD%

WbLegalReport.cmd

эхо% CD%

echo WatchResrAddDeleted.cmd

эхо% CD%

WatchRestrAddDeleted.cmd

эхо% CD%

То, что я пытаюсь сделать здесь, это назвать эти два пакетных файла в последовательности.

Невозможно сделать это.

Помоги пожалуйста.

На самом деле это происходит сбой в дочернем скрипте, так как элемент управления не возвращается обратно в основной скрипт


0

Санкет, не вызывай пакетный файл напрямую. Используйте команду «ВЫЗОВ». Смотрите пример Сплаттне .

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.