Equivalente di (pippo &> / dev / null &) nella shell di Windows


4

Mi piacerebbe eseguire una particolare applicazione (chiamiamola foo) dalla riga di comando, ma non voglio che trattiene il terminale, rimuovendo qualsiasi junk nel terminale dai suoi flussi di output o di errore, e voglio anche che mantenga in esecuzione anche se chiudo detto terminale. In Bash, posso farlo usando (foo &>/dev/null &), ma non so come lo farei nella shell di Windows. Qualcuno può aiutarmi?

Risposte:


6

Il modo in cui lo faresti in Windows è:

start /B foo > NUL 2>&1

Il startcomando avvierà un processo distaccato, un effetto simile a &. L' /Bopzione impedisce l' startapertura di una nuova finestra del terminale se il programma in esecuzione è un'applicazione console (non è necessario per le applicazioni GUI). Lo >ha lo stesso significato come in Linux, ed NULè equivalente di Windows' di /dev/null. La 2>&1alla fine reindirizza stderr su stdout, che saranno tutti andare NUL.


@KozRoss - Questo infatti impedisce all'app foo della console di trattenere il terminale (finestra della console). Ma penso che foo non continui se il terminale (finestra della console) è chiuso. Credo che la chiusura della finestra termini tutte le app della console in esecuzione al suo interno. So che questo è vero se foo è uno script batch, basato su esperimenti. Non ho testato un exe o CScript.
dbenham,

0

Non esiste un equivalente diretto.

Come descritto qui , chiamare un programma in un modo che non blocchi il chiamante può essere fatto con il startcomando, usando l' /bopzione. Non so del reindirizzamento dell'output in questo caso, però. Potrebbe essere necessario avvolgerlo in un file batch.

Per quanto riguarda > /dev/null, è facile: >NUL. NULè un nome di dispositivo DOS. L'operatore di stenografia, tuttavia, non è disponibile. Dovrai procedere manualmente 2>&1. Ecco qualche informazione in più su questo.

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.