Kann ich eine Windows-Batchdatei ohne eine sichtbare Eingabeaufforderung ausführen?
Batch-Dateien sind eine praktische Möglichkeit, eine Reihe von Befehlen in Windows auszuführen, aber gibt es sie überhaupt, um sie unsichtbar im Hintergrund auszuführen? Lesen Sie weiter, wie das geht.
Die heutige Question & Answer-Sitzung wird dank SuperUser zur Verfügung gestellt - einer Unterteilung von Stack Exchange, einer Community-basierten Gruppierung von Q & A-Websites.
Die Frage
SuperUser-Leser Jake möchte eine BAT-Datei unsichtbar ausführen, schreibt er:
Ich habe einen Rubin-Edelstein namens Redcar installiert, der von der Kommandozeile aus gestartet wird. Wenn es ausgeführt wird, stiehlt es die Shell, bis sie beendet wird. Daher muss ich ein neues Shell-Fenster erstellen, um die Befehlszeilenarbeit fortsetzen zu können. Die Shell, die ich verwende, ist die GITBash-Shell von MySysGit.
Ich habe eine Redcar.bat-Datei gefunden, die Redcar als Verknüpfung starten soll, nehme ich an, aber ich möchte nicht, dass das zusätzliche Eingabeaufforderungsfenster beim Starten der BAT-Datei geöffnet wird.
Wie führe ich einfach die BAT aus, ohne die Aufforderung zu sehen??
Gibt es eine Lösung für Jakes stealthy promptes Verlangen??
Die Antworten
Superuser-Mitwirkender Afrazier antwortet mit einer Kombination aus guten und schlechten Nachrichten:
Sie können nicht - das Ausführen einer Batchdatei mit der integrierten Eingabeaufforderung hält ein Fenster offen, bis die Batchdatei beendet wird.
Was du können Führen Sie Schritte aus, um sicherzustellen, dass die Batchdatei so schnell wie möglich beendet wird. Wenn möglich, ändern Sie die Batch-Datei, um das Programm mit dem Programm auszuführen
Start
Befehl. Standardmäßig,Start
kehrt sofort zurück, ohne darauf zu warten, dass das Programm beendet wird. Die Batchdatei wird also weiter ausgeführt und möglicherweise sofort beendet. Wenn Sie die Verknüpfung ändern, um die Batchdatei minimiert auszuführen, sehen Sie nur die Taskleiste blinken, ohne dass ein Fenster auf dem Bildschirm angezeigt wird.Ein Nachteil dabei ist, dass, wenn Sie ein Konsolenmodusprogramm ausführen, bei dem es sich um viele Skriptinterpreter handelt, die Batchdatei darauf wartet, dass das Programm beendet wird und verwendet
Start
öffnet ein neues Konsolenfenster. In diesem Fall müssen Sie statt der konsolenbasierten Version die Windows-Version des Interpreters ausführen - neinStart
notwendig. Für Perl würden Sie laufenwperl.exe
anstattperl.exe
. Für Python ist espythonw.exe
anstattpython.exe
. Die alte win32-Ruby-Distribution, die ich heruntergeladen habe, hatrubyw.exe
, das sollte das Gleiche tun.Eine letzte Möglichkeit besteht darin, ein Drittanbieter-Tool zu verwenden, um die Eingabeaufforderung mit einem ausgeblendeten Fenster auszuführen. Ich habe von solchen Dingen gehört, hatte aber noch nie etwas gebraucht, also weiß ich nichts Besonderes, worauf ich Sie hinweisen könnte.
Die Leser wiesen ihn außerdem auf einen anderen SuperUser-Thread, in dem erläutert wird, wie Sie ein Visual Basic-Skript verwenden können, um über die Minimierung der Sichtbarkeit hinauszugehen und die CMD-Eingabeaufforderung vollständig auszublenden. In diesem Thread erklärt Harry MC:
Lösung 1:
Speichern Sie diese eine Textzeile als Datei
invisible.vbs
:CreateObject ("Wscript.Shell"). Führen Sie "" "" und WScript.Arguments (0) & "" "", 0, False aus
Um ein Programm oder eine Batchdatei unsichtbar auszuführen, verwenden Sie es wie folgt:
wscript.exe "C: \ Wherever \ invisible.vbs" "C: \ Ein anderer Ort \ MyBatchFile.bat"
Um auch eine Liste von Argumenten übergeben oder weiterleiten zu können, verwenden Sie nur zwei Anführungszeichen
CreateObject ("Wscript.Shell"). Führen Sie "" & WScript.Arguments (0) & "", 0, False aus
zB: Invisible.vbs "Kill.vbs ME.exe"
Lösung 2:
Verwenden Sie ein Befehlszeilentool, um einen Prozess im Hintergrund zu starten: Still.
Die Verwendung einer der oben genannten Lösungen, basierend auf Ihrem Komfortniveau mit VBS und Tools von Drittanbietern oder nicht, verringert zumindest die Sichtbarkeit des CMD-Fensters oder das Entfernen des CMD-Fensters.
Haben Sie der Erklärung etwas hinzuzufügen? Ton aus in den Kommentaren. Möchten Sie mehr Antworten von anderen technisch versierten Stack Exchange-Benutzern lesen? Hier geht es zum vollständigen Diskussionsthread.