Как запустить несколько команд DOS параллельно?


97

Как запустить несколько команд DOS?

У меня есть forцикл, который запускает обнаружение сервера, чтобы определить, какой сервер работает и работает быстро. И поскольку серверов больше, я хочу запускать все обнаружения серверов не последовательно, а параллельно.




2
Это полный скрипт, использующий только пакетные функции Windows: stackoverflow.com/a/11715437/2026975
imriss

Windows cmd - это не DOS . В DOS нет таких вещей, как цикл или параллель
phuclv

Ответы:


178

Вы можете выполнять команды параллельно startследующим образом:

start "" ping myserver
start "" nslookup myserver
start "" morecommands

Каждый из них запускается в своей командной строке и позволяет запускать несколько команд одновременно из одного командного файла.

Надеюсь это поможет!


17
Кроме того, /bопция позволяет выполнить startкоманду без создания нового окна. Попробуйте это с помощью cmd:start /b ping google.com & start /b ping example.com
Нино Филиу

2
@NinoFiliu Очень полезно, спасибо. Мне нужно было только одно окно
Саймон

6

Я предлагаю вам посмотреть " Как запустить файл bat в фоновом режиме из другого файла bat? "

Также хороший ответ (использования startкоманды) был дан здесь на странице вопроса « Параллельное выполнение процессов оболочки » ;

Но я рекомендую использовать PowerShell . Я считаю, что он идеально подойдет для ваших нужд.


1

если у вас несколько параметров, используйте синтаксис, как показано ниже. У меня есть файл летучей мыши со сценарием, как показано ниже:

start "dummyTitle" [/options] D:\path\ProgramName.exe Param1 Param2 Param3 
start "dummyTitle" [/options] D:\path\ProgramName.exe Param4 Param5 Param6 

Это откроет несколько консолей.

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