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

97

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

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

Джон Бо
источник
Смотрите здесь: stackoverflow.com/questions/672719/…
Антон Сковородко
2
Это полный скрипт, использующий только пакетные функции Windows: stackoverflow.com/a/11715437/2026975
imriss
Windows cmd - это не DOS . В DOS нет таких вещей, как цикл или параллель
phuclv

Ответы:

178

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

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

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

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

Бали C
источник
17
Кроме того, /bопция позволяет выполнить startкоманду без создания нового окна. Попробуйте это с помощью cmd:start /b ping google.com & start /b ping example.com
Нино Филиу
2
@NinoFiliu Очень полезно, спасибо. Мне нужно было только одно окно
Саймон
6

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

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

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

gahcep
источник
1

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

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

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

Мохит Каноджиа
источник