Startseite » wie man » Kann ich eine Windows-Batchdatei ohne eine sichtbare Eingabeaufforderung ausführen?

    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 - nein Start notwendig. Für Perl würden Sie laufen wperl.exe anstatt perl.exe. Für Python ist es pythonw.exe anstatt python.exe. Die alte win32-Ruby-Distribution, die ich heruntergeladen habe, hat rubyw.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.