2011-01-12 10 views
6

Ich habe eine Batch-Datei, diese Batch-Datei wird nicht automatisch gestartet, es wird nur ausgeführt, wenn ich doppelt darauf klicken.
Kann ich die Batch-Datei im Hintergrund ausführen, wenn ich darauf doppelklicke.Batch-Datei im Hintergrund starten

Antwort

1

Sie würden in der Regel etwas anderes benötigen, um das Skript in diesem Herrenhaus zu starten d. H. Erstellen Sie eine Verknüpfung, und legen Sie das Feld "Ausführen" für die Verknüpfung auf "Minimiert".

1

Sobald Sie auf das Cmd.exe-Fenster klicken oder wegfahren, auf dem die Batch-Datei läuft, ist es "im Hintergrund" - ich bin mir nicht sicher, was Sie wollen, aber es klingt, als würden Sie fragen, wie um die Batch-Datei ohne Anzeige des cmd.exe-Fensters auszuführen.

Wenn ja, kann ich mir zwei Möglichkeiten vorstellen: Erstens können Sie eine Verknüpfung zu der Batch-Datei erstellen, klicken Sie mit der rechten Maustaste darauf, und in den Eigenschaften legen Sie die Verknüpfung minimiert (sollte eine Dropdown-Option neben Ausführen sein)).

Sie können den Aufruf der Stapeldatei auch in eine VBScript-Datei umwandeln, indem Sie das Shell-Objekt des Windows Script Host (calling the Run method) verwenden, um die Stapeldatei unsichtbar auszuführen. Wenn Sie 0 als intWindowStyle-Parameter übergeben, wird die Anzeige eines Fensters oder irgendetwas unterdrückt.

7

Nun, Sie können es mit start minimiert starten, wenn das genug ist. Es zu verbergen, ist schwierig (obwohl ich mir gerade eine Option vorstellen kann).

Grundsätzlich müssen Sie feststellen, ob der Batch durch Doppelklick gestartet wurde. Sie können dies tun, indem Sie eine spezielle Variable definieren und sucht es:

@echo off 
if not defined FOO (
    set FOO=1 
    start /min "" %~0 
    exit /b 
) 

rem here whatever you wanted to do originally in the batch 

Solange die FOO Variable nicht definiert ist (was fast überall wohl der Standard ist), diese Charge wird sich wieder minimiert zu starten, aber mit die Variable zuerst definiert. Umgebungen werden an Teilprozesse übergeben, weshalb dies funktioniert.

+0

Dies ist meine Lieblingsmethode. Ich liebe diesen Ausschnitt. – djangofan

1

@Ghyath Serhal Ich habe cmdow verwendet, um dies auf einem anderen Programm zu tun, es ist eine externe Anwendung, die verwendet werden kann, um die Eingabeaufforderung zu ändern. Um es zu verwenden, müssen Sie entweder diesen Code (siehe unten) in seine eigene Batch-Datei eingeben oder in die Eingabeaufforderung, wo 'BatchFile.bat' mit einem versteckten Terminal-Fenster ausgeführt wird. Ich habe keine Möglichkeit gefunden, dies in einer einzigen Batch-Datei zu verwenden, aber ich habe das erst heute herausgefunden.

cmdow /run /hid 'BatchFile.bat'

Hoffnung, das hilft.