Posso eseguire un file batch di Windows senza un prompt dei comandi visibile?
I file batch sono un modo pratico per eseguire una serie di comandi in Windows, ma è comunque possibile eseguirli invisibilmente in background? Continua a leggere per scoprire come.
La sessione di domande e risposte di oggi ci viene fornita per gentile concessione di SuperUser, una suddivisione di Stack Exchange, un raggruppamento di siti Web di domande e risposte basato sulla comunità.
La domanda
Il lettore SuperUser Jake vuole eseguire un file BAT in modo invisibile, scrive:
Ho installato un gioiello rubino chiamato Redcar, che viene lanciato dalla riga di comando. Quando viene eseguito, ruba la shell finché non termina, quindi devo creare una nuova finestra della shell per continuare a fare il lavoro da riga di comando. La shell che sto usando è la shell GITBash di MySysGit.
Ho trovato un file Redcar.bat che ha lo scopo di avviare Redcar come collegamento, presumo, ma non voglio che la finestra del prompt dei comandi extra si apra ogni volta che lancio il file BAT.
Come faccio a eseguire il BAT senza visualizzare il prompt?
Esiste una soluzione per il rapido desiderio di Jake?
Le risposte
Il collaboratore di SuperUser Afrazier risponde con una combinazione di buone e cattive notizie:
Non è possibile - l'esecuzione di un file batch con il Prompt dei comandi integrato mantiene una finestra aperta fino all'uscita del file batch.
Cosa tu può fare è prendere provvedimenti per assicurarsi che il file batch esca il più rapidamente possibile. Se possibile, modificare il file batch per eseguire qualsiasi programma con
inizio
comando. Di default,inizio
ritorna immediatamente senza attendere l'uscita del programma, quindi il file batch continuerà a funzionare e, presumibilmente, uscirà immediatamente. Un paio che con la modifica del collegamento per eseguire il file batch è ridotto a icona, e vedrai solo la barra delle applicazioni lampeggiare senza nemmeno vedere una finestra sullo schermo.Un avvertimento è che se stai eseguendo un programma in modalità console, che sono molti interpreti di script, il file batch attenderà che il programma esca e che usi
inizio
genererà una nuova finestra di console. Quello che devi fare in questo caso è eseguire la versione basata su Windows dell'interprete invece di quella basata su console - noinizio
necessario. Per Perl, correrestiwperl.exe
invece diperl.exe
. Per Python, lo èpythonw.exe
invece dipython.exe
. La vecchia distribuzione win32 Ruby che ho scaricato harubyw.exe
, che dovrebbe fare la stessa cosa.Un'ultima possibilità è quella di utilizzare uno strumento di terze parti per eseguire il prompt dei comandi con una finestra nascosta. Ho sentito parlare di queste cose ma non le ho mai utilizzate, quindi non so di nulla in particolare a cui puntare.
I lettori lo hanno anche indirizzato a un altro thread SuperUser che evidenzia come è possibile utilizzare uno script di Visual Basic per andare oltre la riduzione della visibilità e nascondere completamente il prompt CMD. In quella discussione, Harry MC spiega:
Soluzione 1:
Salva questa riga di testo come file
invisible.vbs
:CreateObject ("Wscript.Shell"). Esegui "" "" & WScript.Arguments (0) e "" "", 0, False
Per eseguire in modo invisibile qualsiasi programma o file batch, usalo in questo modo:
wscript.exe "C: \ Wherever \ invisible.vbs" "C: \ Some Other Place \ MyBatchFile.bat"
Per essere in grado di inoltrare / inoltrare un elenco di argomenti utilizzare solo due virgolette doppie
CreateObject ("Wscript.Shell"). Esegui "" & WScript.Arguments (0) e "", 0, False
es: Invisible.vbs "Kill.vbs ME.exe"
Soluzione 2:
Utilizzare uno strumento da riga di comando per avviare silenziosamente un processo: Silenzioso.
L'utilizzo di una qualsiasi delle soluzioni di cui sopra, in base al livello di comfort che utilizza VBS e strumenti di terze parti o meno, ridurrà almeno la visibilità della finestra CMD o rimuoverlo completamente..
Hai qualcosa da aggiungere alla spiegazione? Sound off nei commenti. Vuoi leggere più risposte dagli altri utenti di Stack Exchange esperti di tecnologia? Controlla la discussione completa qui.