2010-05-11 17:31:57 +0000 2010-05-11 17:31:57 +0000
134
134

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?

Antworten (9)

88
88
88
2010-05-11 19:55:49 +0000

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

45
45
45
2012-02-15 09:52:03 +0000

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.

21
21
21
2014-01-10 17:50:44 +0000

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.

9
9
9
2010-05-11 19:50:45 +0000

Sie können die Eigenschaften der Verknüpfung so ändern, dass sie minimiert ausgeführt wird.

Um sie völlig unsichtbar auszuführen, benötigen Sie etwas anderes, z. B. Windows Scripting.

9
9
9
2010-05-11 17:36:13 +0000

Verwenden Sie start mit der Option ‘/B’. Zum Beispiel:

@echo off
start /B go.bat
6
6
6
2012-10-22 21:17:19 +0000

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.

6
6
6
2013-05-29 03:48:54 +0000

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
6
6
6
2014-10-27 08:23:11 +0000

Einfache Lösung, ohne Verwendung zusätzlicher Programme

  1. Erstellen Sie die Batch-Datei, die Sie ausführen möchten, und testen Sie sie.
  2. Erstellen Sie eine Verknüpfung dafür.
  3. Bearbeiten Sie die Eigenschaften der Verknüpfung: Wählen Sie auf der Registerkarte Verknüpfung die Option Minimiert ausführen. Weisen Sie ihr eine Tastenkombination zu, und das war’s!

Viel Glück!

5
5
5
2010-05-12 16:03:41 +0000

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.