3

Я хотел бы запустить команду из командной строки cmd в Windows 7 и полностью запустить ее в фоновом режиме.

В основном я ищу функциональность, которую предоставляет * nix & .

До сих пор я нашел start который запускает команду в новом окне cmd , и нашел start /B который не открывает новое окно, возвращается к командной строке, но сохраняет процесс привязанным к cmd.exe процесс, из которого он был запущен (поэтому, если вы закроете cmd.exe он убьет процесс).

Это возможно? Это так просто в * nix, что мне трудно поверить, что это невозможно, но кто знает.

2 ответа2

4

Единственный простой способ, который я знаю из cmd - это использование psexec из инструментов процесса Sysinternals.

psexec -d your_command

мог бы добиться цели. (У этого инструмента есть множество полезных опций, и он может запускать процессы и на удаленных машинах. Довольно полезно.)

Я помню, что приходилось прибегать к at и / или schtasks в трудном положении, но ... не делай этого;)

Если вам вообще не нужно новое окно, но оно может стоять так, что оно сразу исчезает (вы увидите, что оно всплывает, а затем уходит), вы можете использовать оболочку VBScript. (Есть несколько вариантов этого по всем трубам.)

launcher.vbs

Set WshShell = CreateObject("WScript.Shell") 
WshShell.Run "your_cmd_file_with_full_path.cmd", 0
Set WshShell = Nothing

Затем:

psexec -d cscript launcher.vbs
0

откройте окно powershell (просто введите powershell в области команд в меню "Пуск"), start-job -command "какой бы ни была ваша команда"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .