Назад | Перейти на главную страницу

Инструменты для запуска командной строки фонового процесса в Windows?

В linux нам просто нужно добавить & и это все.

Что за windows?

start /min cmd /c mycommand

Если вы хотите запускать другие задания в той же оболочке, вы должны использовать фоновые задания PowerShell

Если вы хотите скрыть командное окно, сохраните файл vbscript со следующим кодом (при необходимости заменив команды):

Set WshShell = CreateObject("WScript.Shell") 
WshShell.Run chr(34) & "C:\mycommand_path\mycommand and args" & Chr(34), 0
Set WshShell = Nothing

создайте ярлык для этого файла и запустите его из оболочки, дважды щелкнув по нему. Похоже, что на самом деле вам нужно контролировать работу. Установите подсистему для unix, чтобы получить приглашение bash или ksh, и выполнить его оттуда, если вы хотите управлять заданиями, однако меня не удивит, если запуск его в качестве фонового задания вызывает проблемы. Возможно, вы захотите запустить его как фоновый процесс.

В мире * nix это называется управлением заданиями. Управление заданиями - это обязательная функция оболочки POSIX.

Для Windows я нашел эта почта о некоторых аналогах ..

Нет эквивалента. Вы можете установить cygwin и сделать то же самое. Или вы можете создать службу, которая запускает ваше приложение: srvany или другие инструменты сделают это за вас. Имейте в виду, что не все приложения Windows будут правильно работать таким образом.

Ты можешь использовать HStart для этого он позволяет запускать команду в фоновом режиме.

Никто не упомянул start /b:

C:\Users\dandv>help start
Starts a separate window to run a specified program or command.

START ["title"] [/D path] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
      [/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
      [/NODE <NUMA node>] [/AFFINITY <hex affinity mask>] [/WAIT] [/B]
      [command/program] [parameters]

    "title"     Title to display in window title bar.
    path        Starting directory.
    B           Start application without creating a new window. The
                application has ^C handling ignored. Unless the application
                enables ^C processing, ^Break is the only way to interrupt
                the application.