Командний рядок: запускайте сценарії у фоновому режимі (еквівалент Linux & / bg)


23

У Linux ви можете зробити це:

$ php blah.php> some.log &

бігати blah.phpна задньому плані. Це те ж саме, Ctrl+ zпотім bgкоманду.

Чи існує еквівалент або / і для командного рядка Windows?


1
Я не вірю, що існує, але ви можете запустити стільки командних підказок, скільки вам потрібно. Що ви намагаєтеся досягти?
uSlackr

Я використовую> для входу у файл, і я не хочу запросити просто посидіти там. Можливо, я хочу продовжувати роботу над тим же вікном підказки з тим самим каталогом.
DOOManiac

Яка версія Windows?
EBGreen

Windows 7 (64-розрядні)
DOOManiac

Відповіді:


41

У Windows є функціонал, подібний до Linux &, для запуску процесів, щоб вони не переймали вашу консоль. Замість прапора командного рядка, однак, це префікс команди.

Просто запустіть свою команду startперед нею як таку: C:\> start myprog.exe

Він також працює з командами, а не просто виконуваними файлами: C:\> start dir

Це запустить нове вікно консолі та запустить команду всередині нього.

Якщо ви не хочете, щоб під час запуску команди з’явилося нове вікно консолі, використовуйте /Bперемикач, наприклад: C:\> start /B myprog.exe

Є кілька інших параметрів, які можна вказати, щоб налаштувати, як запустити команду. Ви можете їх зрозуміти, прочитавши довідку startза допомогою start /?.


1

Це може запустити файл у фоновому режимі з командного рядка або пакетного файлу

@Echo off
Echo Set WshShell = CreateObject("WScript.Shell")   >>%temp%\ghost.vbs
Echo WshShell.Run chr(34) ^& "MyFile" ^& Chr(34), 0 >>%temp%\ghost.vbs
Echo Set WshShell = Nothing                         >>%temp%\ghost.vbs
start %temp%\ghost.vbs
timeout /t 1 >nul
del %temp%\ghost.vbs

Тепер замініть MyFileфайл, який ви хочете запустити у фоновому режимі.


2
(1) Чи можете ви пояснити, як це працює (лише трохи)? (2) Принципово для цього використовується startкоманда. Він створює проміжну річ, яка виконує команду користувача, а потім використовує startкоманду для запуску проміжної речі. Так це машина Руба Голдберга . Чим це краще, ніж інша відповідь, яка пропонує використовувати startбезпосередньо? (3) Питання показує перенаправлення вводу / виводу ( > some.log). Як користувач зробив би переадресацію вводу / виводу з цією відповіддю? Помістіть його в командний рядок чи вбудуйте його в WshShell.Runрядок у сценарії?
Скотт

Не відповідайте в коментарях; відредагуйте свою відповідь, щоб зробити її більш зрозумілою та повною.
Скотт
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.