Prompt dei comandi: esegui script in background (equivalente a Linux & / bg)


23

In Linux puoi farlo:

$ php blah.php> some.log &

per eseguire blah.phpin background. Questo è uguale a Ctrl+ zquindi al bgcomando.

Esiste un equivalente di uno / entrambi per il prompt dei comandi di Windows?


1
Non credo ci sia, ma puoi lanciare tutti i prompt dei comandi di cui hai bisogno. Cosa stai cercando di realizzare?
uSlackr,

Sto usando> per accedere a un file e non voglio chiedere di sedermi lì. Potrei voler continuare a lavorare sulla stessa finestra del prompt con la stessa directory.
DOOManiac,

Quale versione di Windows?
EBGreen

Windows 7 (64 bit)
DOOManiac

Risposte:


41

Windows ha una funzionalità simile a quella di Linux &, per avviare processi in modo tale da non assumere il controllo della tua console. Invece di un flag da riga di comando, tuttavia, è un prefisso di comando.

Basta eseguire il comando con startdavanti, come tale: C:\> start myprog.exe

Funziona anche con i comandi, non solo con gli eseguibili: C:\> start dir

Ciò avvierà una nuova finestra della console ed eseguirà il comando al suo interno.

Se non si desidera che venga visualizzata una nuova finestra della console durante l'esecuzione del comando, utilizzare l' /Bopzione, in questo modo: C:\> start /B myprog.exe

Esistono diverse altre opzioni che è possibile specificare per configurare come eseguire il comando. Puoi capirli leggendo l'aiuto per startusando start /?.


1

Questo può eseguire un file in background dal prompt dei comandi o un file batch

@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

Ora sostituisci MyFilecon il file che desideri eseguire in background.


2
(1) Puoi spiegare come funziona (solo un po ')? (2) Fondamentalmente, questo utilizza il startcomando. Crea una cosa intermedia che esegue il comando dell'utente e quindi utilizza il startcomando per avviare la cosa intermedia. Quindi è una macchina Rube Goldberg . In che modo è meglio dell'altra risposta, che suggerisce di usare startdirettamente? (3) La domanda mostra il reindirizzamento I / O ( > some.log). In che modo l'utente farebbe il reindirizzamento I / O con questa risposta? Inserirlo nella riga di comando o incorporarlo nella WshShell.Runriga nello script?
Scott,

Non rispondere nei commenti; modifica la tua risposta per renderla più chiara e completa.
Scott,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.