Diese Frage hat hier bereits eine Antwort:
Kann ich unter Windows XP eine Batchdatei (.bat oder .cmd) über eine Verknüpfung ohne "schwarzes Fenster" ausführen?
windows
command-line
batch-file
shortcuts
Dugres
quelle
quelle
Antworten:
Speichern Sie Folgendes als wscript, beispielsweise hidecmd.vbs, nachdem Sie "testing.bat" durch den Namen Ihrer Stapeldatei ersetzt haben.
Der zweite Parameter von
oShell.Run
ist derintWindowStyle
Wert, der das Erscheinungsbild des Programmfensters angibt, und der Wert Null ist für das ausgeblendete Fenster.Die Referenz finden Sie hier http://msdn.microsoft.com/en-us/library/d5fk67ky.aspx
quelle
.bat
ich die Datei mit dieser Methode als Administrator aus?Dies ist nur eine Vereinfachung von Shajis Antwort. Sie können Ihr Batch-Skript über ein VBScript- Skript (.vbs) wie folgt ausführen :
Dadurch wird Ihre Batch-Datei ausgeführt, ohne dass ein Befehlsfenster angezeigt wird.
quelle
.bat
kann ich mit dieser Methode eine Datei als Administrator ausführen ?Um die Antworten zu "Windows Scripting verwenden" (die ich am besten finde, weil sie bereits integriert sind) zu erweitern, verwenden Sie ein einzelnes Wrapper-Skript und übergeben den Namen der "echten" Batch-Datei als Parameter. Zusätzliche Parameter werden an die Batch-Datei übergeben.
Also zB die obige Datei als
NoShell.vbs
irgendwo speichern und dann aufrufen:Wenn Sie dies von einem Ort aus ausführen möchten, der die .vbs-Datei nicht versteht (z. B. "Externe Tools" in Visual Studio), sollten Sie
C:\Windows\System32\wscript.exe
die vbs-Datei als ersten Parameter und Ihren aufrufen Batch-Datei als zweite.quelle
"C:\My Files\HideCmd.vbs" c:\foo\my_batch_file.bat
."C:\My Files\HideCmd.vbs" c:\my things\my_batch_file.bat
. Egal, was ich für den Pfad versuche - doppelte Anführungszeichen um alles,% 20 anstelle des Leerzeichens oder eine Kombination dieser beiden, funktionieren nicht. Ich erhalte eine Fehlermeldung, dass die Datei nicht gefunden werden kann oder nichts passiert. Liegt dies an einem Benutzerfehler auf meiner Seite, einer Windows-Einschränkung mit dem Zielfeld für Verknüpfungen oder einem Problem mit dem vbs-Skript, in dem Dateipfade mit Leerzeichen nicht ordnungsgemäß verarbeitet werden?Sie können die Eigenschaften der Verknüpfung so ändern, dass sie minimiert ausgeführt wird.
Um es vollständig unsichtbar auszuführen, benötigen Sie etwas anderes, wie Windows Scripting.
quelle
Verwenden Sie start mit der Option '/ B'. Zum Beispiel:
quelle
start /b
Führt das Programm nur in der aktuell zugewiesenen Konsole aus, anstatt eine neue zu erstellen. Sie erhalten ohnehin eine neue, da der Stapel mit cmd ausgeführt werden muss (was wiederum [überraschend] eine Konsole öffnet).SYSTEM
in C / C ++).cmd /c foo.cmd
. Es gibt absolut keine Notwendigkeit,start
in diesen Szenarien zu verwenden, und ich würde argumentieren, dass diessystem
nicht zu Gunsten von verwendet werden sollteCreateProcess
. Wenn Sie eine Batch-Datei starten, sind Sie bereits auf eine Plattform angewiesen. Sie können auch die besseren Tools für den Job verwenden.cmd /c
zuvor gehört. Der Befehl cmd ist das, was ich in meinem Fall brauchte, aber alle Stapelaustausch-Antworten, die ich bisher über eine Stapeldatei gefunden habe, die eine anderestart /b go.bat
nicht eine neue Konsole (- oder einen Faden in CSRSS.exe vor Windows 7 dh eine Instanz von conhost.exe) zuzuteilen. Da das Batch-Skript mit einer neuen Instanz von cmd.exe ausgeführt wird, die an dieselbe Konsole angehängt ist, führt dies jedoch zu Problemen . Beide Instanzen der Shell konkurrieren abwechselnd um das Lesen von Eingaben von der Konsole. Es benötigt/w
(zBstart /b /w go.bat
), um auf die zweite Instanz zu warten, ähnlich wie usingcmd /c
if usingsystem
. Wenn Sie anrufenCreateProcess
, können Sie auchgo.bat
direkt ausführen . Es gibt keine Notwendigkeit dafürcmd /c
.Freie GPL Open Source "Versteckten Prozess erstellen"
http://www.commandline.co.uk/chp/
Microsoft Security Essentials und wahrscheinlich auch die meisten anderen Viren- / Malware-Scanner behandeln die ausführbare Datei "chp.exe" als Virus, da sie genau wie Viren alle von Ihnen angegebenen Programme vor dem Anzeigen eines Fensters oder einer Taskleistenschaltfläche schützt.
Es ist kein Virus. Der Zielprozess wird nicht ausgeblendet, wenn er beispielsweise im Task-Manager angezeigt wird. Und natürlich ist der Quellcode enthalten, damit 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 dieser Quelle erstellt wurde. Sie können die enthaltene chp.exe verwerfen und Ihre eigene aus dem Quellcode kompilieren. Alle dazu erforderlichen Tools 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, Eigenschaften, Registerkarte Verknüpfung, Ausführen: Minimiert klicken. Verwenden Sie dann in geplanten Aufgaben die Verknüpfung anstelle der .bat / .cmd-Datei direkt. Dadurch wird verhindert, dass ein Fenster angezeigt wird, es wird jedoch weiterhin eine Taskleistenschaltfläche angezeigt.
quelle
Sie können Fensterskripte wie AutoIt verwenden .
Schreiben Sie dies zum Beispiel einfach in den AutoIt-Skript-Editor. Es ist ziemlich einfach
Wenn Sie es in einer Schleife ausführen möchten,
Kompilieren Sie es als .exe - und Sie sind fertig.
Ebenso in AutoHotkey :
quelle
Verwenden Sie Hidden Start (kostet 20 $)
quelle
Einfache Lösung ohne zusätzliche Programme.
Viel Glück!
quelle