Wie kann man eine Batch-Datei ausführen, ohne ein "Befehlsfenster" zu starten?
Kann ich unter Windows XP eine Batch-Datei (.bat oder .cmd) über eine Verknüpfung ohne “schwarzes Fenster” ausführen?
Kann ich unter Windows XP eine Batch-Datei (.bat oder .cmd) über eine Verknüpfung ohne “schwarzes Fenster” ausführen?
Speichern Sie Folgendes als wscript, z.B. hidecmd.vbs, nachdem Sie “testing.bat” durch den Namen Ihrer Batch-Datei ersetzt haben.
Set oShell = CreateObject ("Wscript.Shell")
Dim strArgs
strArgs = "cmd /c testing.bat"
oShell.Run strArgs, 0, false
Der zweite Parameter von oShell.Run
ist der Wert intWindowStyle
, der das Aussehen des Programmfensters angibt, und der Wert Null steht für verstecktes Fenster.
Die Referenz ist hier http://msdn.microsoft.com/en-us/library/d5fk67ky.aspx
Dies ist nur eine Vereinfachung von Shajis Antwort. Sie können Ihr Batch-Skript durch ein VBScript (.vbs)-Skript wie dieses ausführen:
'HideBat.vbs
CreateObject("Wscript.Shell").Run "your_batch_file.bat", 0, True
Dies führt Ihre Batch-Datei ohne angezeigtes Befehlsfenster aus.
Um die Antworten zu “Use Windows Scripting” zu erweitern (was ich für das Beste halte, weil es bereits eingebaut ist), hier ist, wie man es macht, indem man ein einzelnes Wrapper-Skript verwendet und den Namen der “echten” Batch-Datei als Parameter übergibt. Zusätzliche Parameter werden an die Batch-Datei übergeben.
If WScript.Arguments.Count >= 1 Then
ReDim arr(WScript.Arguments.Count-1)
For i = 0 To WScript.Arguments.Count-1
Arg = WScript.Arguments(i)
If InStr(Arg, " ") > 0 Then Arg = """" & Arg & """"
arr(i) = Arg
Next
RunCmd = Join(arr)
CreateObject("Wscript.Shell").Run RunCmd, 0, True
End If
Also z.B. speichern Sie die obige Datei als NoShell.vbs
irgendwo ab und rufen Sie dann auf:
NoShell.vbs c:\foo\my_batch_file.bat
Schließlich, wenn Sie dies von einem Ort aus ausführen wollen, der die .vbs-Datei nicht versteht (wie z.B. ein “External Tools” in Visual Studio), werden Sie C:\Windows\System32\wscript.exe
mit der vbs-Datei als ersten Parameter und Ihrer Batch-Datei als zweiten aufrufen wollen.
Kostenlose GPL Open Source “Versteckte Prozesse erstellen” http://www.commandline.co.uk/chp/
Microsoft Security Essentials, und wahrscheinlich die meisten anderen Viren-/Malware-Scanner werden die ausführbare Datei chp.exe als Virus behandeln, weil sie das von Ihnen angegebene Programm vor der Anzeige eines Fensters oder einer Schaltfläche in der Taskleiste verbirgt, genau wie es Viren tun.
Es ist kein Virus. Er verbirgt den Zielprozess nicht davor, z.B. im Task-Manager zu erscheinen. Und natürlich ist der Quellcode enthalten, so dass Sie sehen können, dass er sehr klein ist und nichts anderes tut, als das Programm auszuführen, das Sie ihm geben.
Sie müssen nicht einmal darauf vertrauen, dass die enthaltene chp.exe wirklich aus diesem Quellcode erstellt wurde. Sie können die mitgelieferte chp.exe einfach verwerfen und Ihre eigene aus dem Quellcode kompilieren, und alle notwendigen Tools dafür sind sogar kostenlos und können heruntergeladen werden.
Sie können auch einfach eine Verknüpfung zur .bat- oder .cmd-Datei erstellen und dann mit der rechten Maustaste auf die Verknüpfung klicken, Eigenschaften, Registerkarte Verknüpfung, Ausführen: Minimiert. Verwenden Sie dann bei geplanten Aufgaben die Verknüpfung anstelle der .bat/.cmd-Datei direkt. Dadurch wird verhindert, dass ein Fenster geöffnet wird, aber es wird trotzdem eine Schaltfläche in der Taskleiste angezeigt.
Sie können Window-Scripting wie AutoIt .
Als Beispiel schreiben Sie dies einfach in den AutoIt-Skript-Editor. Es ist ziemlich einfach
Run("C:\test\batchfile.bat", "", @SW_HIDE)
Wenn Sie es in einer Schleife ausführen möchten,
$x=0
Do
Run("C:\test\batchfile.bat", "", @SW_HIDE)
Sleep(5000)
Until $x = 1
Kompilieren Sie es als .exe - und fertig.
Ebenso in AutoHotkey :
#NoTrayIcon ; To prevent momentary icon pop-up
run whatever.bat arg1 arg2,,hide
Einfache Lösung, ohne Verwendung zusätzlicher Programme
Viel Glück!
Verwenden Sie Versteckter Start (kostet $20)
Versteckter Start - Führen Sie Anwendungen und Batch-Dateien ohne Konsolenfenster oder UAC-Eingabeaufforderung aus
Konsolenanwendungen und Batch-Dateien werden regelmäßig beim Windows-Start oder in einem Zeitplan ausgeführt. Die größte Unannehmlichkeit dabei ist, dass jede Anwendung ein Konsolenfenster öffnet, das auf dem Bildschirm flimmert. Hidden Start (oder Hstart) ist ein leichtgewichtiges Befehlszeilen-Dienstprogramm, mit dem Sie Konsolenanwendungen und Batch-Dateien ohne jedes Fenster im Hintergrund ausführen, die Erhöhung der UAC-Privilegien unter Windows 7 und Vista handhaben, mehrere Befehle parallel oder synchron starten können und vieles mehr.