Назад | Перейти на главную страницу

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

У меня есть командный файл, который вызывает другой командный файл, который существует в каталоге 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 в CALLed, если вам нужно вернуться раньше.

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

@echo off

echo WbLegalReport.cmd

я:

компакт-диск I: \ CFS \ Batch \ jarDir

эхо% CD%

WbLegalReport.cmd

эхо% CD%

эхо WatchResrAddDeleted.cmd

эхо% CD%

WatchRestrAddDeleted.cmd

эхо% CD%

Я пытаюсь последовательно вызвать эти два командных файла.

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

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

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

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