Командний рядок - пакетний файл, що викликає інший пакетний файл


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
<скопійовано з відповіді Данкана Смарт, просто щоб зберегти його разом> Крім відповіді @ splattne, використовуйте вихід / b у файлі CALLED batch, якщо вам потрібно повернутися достроково.
Бред Брюс

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

Я не знаю чому, але я намагаюся, щоб це працювало, я спробував і те, exit /bі інше goto: eof. Чи добре додавати вихід КЛІТАНОГО кажана? call foo.bat > myfile
SSH Цього

4

Окрім відповіді @ splattne, використовуйте exit /bу CALLфайлі b ed, якщо вам потрібно повернутися достроково.


2

Інший варіант (для сумісності з DOS до версії 3.3 :-)) - викликати командний процес з дочірньою (/ c) опцією та ім'ям іншого пакетного файлу для обробки. Це також зробить дзвінок замість ланцюга і навіть працюватиме на справді стародавніх машинах (про всяк випадок, коли хтось перебігає це і піклується). :-)


0

@echo off

echo WbLegalReport.cmd

я:

cd I: \ CFS \ Batch \ jarDir

ехо% CD%

WbLegalReport.cmd

ехо% CD%

echo WatchResrAddDeleted.cmd

ехо% CD%

WatchRestrAddDeleted.cmd

ехо% CD%

Що я тут намагаюся зробити, це викликати ці два пакетні файли послідовно.

Неможливо зробити це.

Допоможіть, будь ласка.

Гостро це не вдається дочірньому сценарію, оскільки управління не повертається до основного сценарію


0

Sanket, не дзвоніть безпосередньо в пакетний файл. Скористайтесь командою "CALL". Дивіться приклад splattne .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.