Frage

Wie kann ich eine CMD oder BAT-Datei im Silent-Modus laufen? Ich suche die CMD-Schnittstelle aus wird gezeigt an den Benutzer zu verhindern.

War es hilfreich?

Lösung

Ich habe in Frage Stackoverflow einen Weg vorgeschlagen, um eine Batch-Datei im Hintergrund ausgeführt werden ( keine DOS-Fenster angezeigt )

Das soll Ihre Frage beantworten.

Hier ist sie:


Von Ihrem ersten Skript, rufen Sie Ihren zweiten Skript mit der folgenden Zeile:

wscript.exe invis.vbs run.bat %*

Eigentlich Sie fordern einen vbs Skript mit:

  • der [Pfad] \ Name des Skripts
  • alle anderen Argumente benötigt von Ihrem Skript (%*)

Dann invis.vbs wird das Skript mit dem Windows Script Host Run () -Methode , das dauert:

  • intWindowStyle: 0 bedeutet "unsichtbare Fenster"
  • bWaitOnReturn: false bedeutet, dass Ihr erstes Skript nicht für Ihr zweites Skript warten muss bis zum Ende

Sehen Sie die Frage für den vollständigen invis.vbs Skript:

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run """" & WScript.Arguments(0) & """" & sargs, 0, False
                                                         ^
                             means "invisible window" ---| 

Update nach Tammen Feedback:

Wenn Sie in einer DOS-Sitzung sind und Sie wollen ein anderes Skript starten „im Hintergrund“, ein einfaches /b (wie in den gleich vorgenannte Frage ) genügt:

  

Sie können verwenden start /b second.bat eine zweite Batch-Datei asynchron vom ersten zu starten, die Ihre ersten Fenster teilt.

Andere Tipps

Fügen Sie den Satz

@echo off

rechts an der Spitze Ihres Fledermaus-Skript.

Verwenden Sie die erweiterte BAT to EXE Converter von http://www.battoexeconverter.com

Auf diese Weise können Sie weitere Binärdateien mit Batch-Datei allein völlig geräuschlos EXE in einen Stand einzubetten und seine Freeware

Ich denke, dies ist die einfachste und kürzeste Lösung eine Batch-Datei ausgeführt wird, ohne dass die DOS-Fenster zu öffnen, kann es sehr störend sein, wenn Sie eine Reihe von Befehlen planen mögen regelmäßig ausgeführt werden, so halten die DOS-Fenster auftauchen, hier Ihre Lösung. Verwenden Sie ein VBS-Skript die Batch-Datei aufrufen ...

Set WshShell = CreateObject("WScript.Shell" ) 
WshShell.Run chr(34) & "C:\Batch Files\ mycommands.bat" & Chr(34), 0 
Set WshShell = Nothing 

die Linien oben in einen Editor kopieren und die Datei mit .VBS Erweiterung speichern. Bearbeiten Sie die .BAT Dateinamen und den Pfad entsprechend.

Verwenden Bat To Exe Converter dieses
tun

http://download.cnet.com/ Bat-To-Exe-Converter / 3000-2069_4-10555897.html
(wählen Sie bitte Direkt Download Link )

1 - Offen Bat To Exe Converter, wählen Sie Ihre Bat-Datei
. 2 - Im Optionsmenü wählen Sie „Unsichtbare Anwendung“, und drücken Sie Taste kompilieren.

Fertig!

Versuchen Sie SilentCMD . Dies ist ein kleines Freeware-Programm, das ohne Anzeige der Eingabeaufforderung Fenster eine Batch-Datei ausgeführt wird.

Wenn ich Befehl promt im Silent-Modus ausgeführt werden soll, dann gibt es einen einfachen vbs-Befehl:

Set ws=CreateObject("WScript.Shell")
ws.Run "TASKKILL.exe /F /IM iexplore.exe"

, wenn ich auf wollte hier eine URL öffnet in cmd leise , dann ist ein Code:

Set WshShell = WScript.CreateObject("WScript.Shell") 
Return = WshShell.Run("iexplore.exe http://otaxi.ge/log/index.php", 0)
'wait 10 seconds
WScript.sleep 10000 
Set ws=CreateObject("WScript.Shell")
ws.Run "TASKKILL.exe /F /IM iexplore.exe"

Ich bin mir ziemlich sicher, dass ich diese Methode am besten gefällt. Kopieren Sie den Code unten in einer VBS-Datei. Von dort aus werden Sie die Batch-Datei aufrufen ... so stellen Sie sicher, dass Sie die letzte Zeile bearbeiten Sie den Pfad und den Namen der Batch-Datei angeben (die die Datei enthalten, sollten Sie die Aktionen starten oder ausführen möchten Sie durchgeführt brauchen)

Const HIDDEN_WINDOW = 12 

strComputer = "." 
Set objWMIService = GetObject("winmgmts:" _ 
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 
Set objStartup = objWMIService.Get("Win32_ProcessStartup") 

Set objConfig = objStartup.SpawnInstance_ 
objConfig.ShowWindow = HIDDEN_WINDOW 
Set objProcess = GetObject("winmgmts:root\cimv2:Win32_Process") 
errReturn = objProcess.Create("C:\PathOfFile\name.bat", null, objConfig, intProcessID)

Es funktionierte auf jeden Fall für mich. Kommentare sind willkommen:)

Ich bin erstellt Ausführenanwendung einen solchen Job zu tun und es auch in meiner Produktion env verwenden, hoffen, dass es hilft.

Die Konfiguration wie folgt:

Datei: config.arg

:style:hidden

MyBatchFile.bat
arg1
arg2

Und Einführung runapp.exe statt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top