Запуск нескольких приглашений оболочки из одного пакетного файла - PullRequest
1 голос
/ 30 сентября 2011

У меня есть набор команд DOS, которые мне нужно запускать в разных экземплярах оболочки.Можно ли написать один командный файл, который будет содержать несколько экземпляров cmd и выполнять набор команд DOS в каждом из запросов?

Ответы [ 2 ]

3 голосов
/ 01 октября 2011

Ваш вопрос, кажется, сводится к тому, как запускать разные серии команд в каждом экземпляре cmd.exe, не имея нескольких командных файлов.

Есть довольно простой способ сделать это. Идея состоит в том, чтобы запускать один и тот же командный файл в каждом экземпляре cmd.exe, но передавать ему параметр командной строки, который сообщает ему, какую часть работы выполнять.

Полезный трюк здесь заключается в использовании параметра командной строки в команде goto, например:

if not "%1" == "" goto :%1

start "Job 1" "%~dpfx0" job1
start "Job 2" "%~dpfx0" job2
goto :eof

:job1

echo Job 1
pause
exit

:job2

echo Job 2
pause
exit

Обратите внимание также на использование% ~ dpfx0 для определения полного пути и имени текущего скрипта. Это должно быть в кавычках, если путь содержит пробелы, что означает, что (из-за нечетного синтаксиса команды start) вам сначала нужно явно указать заголовок окна (также в кавычках).

1 голос
/ 30 сентября 2011

Как насчет чего-то вроде:

start cmd / c dir c: \ windows

...