Antworten:
Sie können das Schlüsselwort exit verwenden. Hier ist ein Beispiel aus einer meiner Batch-Dateien:
start myProgram.exe param1
exit
exit
eine Batch-Datei zu erstellen.
start "VPN" "C:\Program Files (x86)\Cisco\Cisco AnyConnect Secure Mobility Client\vpnui.exe"
Verwenden Sie den Befehl start, um zu verhindern, dass die Batchdatei auf das Programm wartet. Denken Sie daran, ein leeres Anführungszeichen vor das Programm zu setzen, das Sie nach "Start" ausführen möchten. Wenn Sie beispielsweise Visual Studio 2012 über einen Stapelbefehl ausführen möchten:
Start "" "C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe"
Beachten Sie das doppelte Anführungszeichen nach dem Start.
start <window name> <program name>
Schauen Sie sich den Befehl START an, Sie können dies tun:
START rest-of-your-program-name
Diese Batch-Datei wartet beispielsweise, bis der Editor beendet wird:
@echo off
notepad c:\test.txt
Dies wird jedoch nicht:
@echo off
start notepad c:\test.txt
Aus meiner eigenen Frage :
start /b myProgram.exe params...
funktioniert, wenn Sie das Programm von einer vorhandenen DOS-Sitzung aus starten.
Wenn nicht, rufen Sie ein vb-Skript auf
wscript.exe invis.vbs myProgram.exe %*
Die Windows Script Host Run () -Methode verwendet :
Hier ist invis.vbs:
set args = WScript.Arguments
num = args.Count
if num = 0 then
WScript.Echo "Usage: [CScript | WScript] invis.vbs aScript.bat <some script arguments>"
WScript.Quit 1
end if
sargs = ""
if num > 1 then
sargs = " "
for k = 1 to num - 1
anArg = args.Item(k)
sargs = sargs & anArg & " "
next
end if
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run """" & WScript.Arguments(0) & """" & sargs, 0, False
Dies ist das einzige, was für mich funktioniert hat, als ich versucht habe, eine Java-Klasse aus einer Batch-Datei auszuführen:
start "cmdWindowTitle" /B "javaw" -cp . testprojectpak.MainForm
Sie können den start
Befehl für Ihr Projekt nach Ihren Wünschen anpassen , indem Sie die richtige Syntax befolgen:
Syntax
START "title" [/Dpath] [options] "command" [parameters]
Key:
title : Text for the CMD window title bar (required)
path : Starting directory
command : The command, batch file or executable program to run
parameters : The parameters passed to the command
Options:
/MIN : Minimized
/MAX : Maximized
/WAIT : Start application and wait for it to terminate
/LOW : Use IDLE priority class
/NORMAL : Use NORMAL priority class
/HIGH : Use HIGH priority class
/REALTIME : Use REALTIME priority class
/B : Start application without creating a new window. In this case
^C will be ignored - leaving ^Break as the only way to
interrupt the application
/I : Ignore any changes to the current environment.
Options for 16-bit WINDOWS programs only
/SEPARATE Start in separate memory space (more robust)
/SHARED Start in shared memory space (default)
Sie sollten dies versuchen. Es startet das Programm ohne Fenster. Es blinkt tatsächlich für eine Sekunde, verschwindet aber ziemlich schnell.
start "name" /B myprogram.exe param1
"title"
Option ist wichtig. Wenn der Pfad des Programms Leerzeichen enthält, muss er in Anführungszeichen gesetzt werden, daher müssen wir ihn hinzufügen "title"
, um Fehler zu vermeiden.
So lösen Sie "Platzprobleme" und lokale Abhängigkeiten:
@echo off
cd "C:\Program Files\HeidiSQL"
start heidisql.exe
cd "C:\Program Files (x86)\Google\Chrome\Application"
start chrome.exe
exit
Viele Antworten auf diese Frage, aber ich poste dies, um etwas Wichtiges zu klären, obwohl dies möglicherweise nicht immer der Fall ist:
Start "C:\Program Files\someprog.exe"
Kann in einigen Windows-Versionen zu Problemen führen, da Start
erwartet wird, dass der erste Satz von Anführungszeichen ein Windows-Titel ist. Es wird daher empfohlen, zunächst einen Kommentar oder einen leeren Kommentar doppelt zu zitieren:
Start "" "C:\Program Files\someprog.exe"
oder
Start "Window Title" "C:\Program Files\someprog.exe"
Meine Lösung dazu über die GUI:
Erstellen Sie eine Verknüpfung zu dem Programm, das Sie ausführen möchten.
Bearbeiten Sie die Eigenschaften der Verknüpfung.
Ändern Sie das TARGET
Feld in %COMSPEC% /C "START "" "PROGRAMNAME""
;
Ändern Sie das RUN
Feld in minimiert.
Bereit! Sehen Sie, wie es Ihnen gefällt ...
PS: Programmparameter können zwischen die beiden letzten Anführungszeichen eingefügt werden. Die PROGRAMNAME
Zeichenfolge kann entweder ein Dateiname, ein relativer oder ein absoluter Pfad sein. Wenn Sie einen absoluten Pfad eingeben und den Laufwerksbuchstaben und das Semikolon löschen, funktioniert dies in einem Thumbdrive, unabhängig davon, welchen Buchstaben der Host-Computer ihm zuweist. (Wenn Sie die Verknüpfung im selben Ordner ablegen und dem Programmdateinamen PROGRAMNAME
die %CD%
Variable voranstellen , stimmen die Pfade immer überein. Der gleiche Trick kann im START IN
Feld verwendet werden.)
Wenn Sie diese Batchdatei wie geplant oder immer ausführen möchten; Sie können das Windows-Zeitplan-Tool verwenden und es wird beim Starten der Batch-Datei nicht in einem Fenster geöffnet.
Zum Öffnen Task Scheduler
:
'cmd'
taskschd.msc
-> eingeben einKlicken Sie auf der rechten Seite auf Create Basic Task
und folgen Sie den Menüs.
Hoffe das hilft.
Hier ist meine bevorzugte Lösung. Es wird aus einer Antwort entnommen auf eine ähnliche Frage .
Verwenden Sie ein VBS-Skript, um die Batchdatei aufzurufen:
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "C:\path\to\your\batchfile.bat" & Chr(34), 0
Set WshShell = Nothing
Kopieren Sie die obigen Zeilen in einen Editor und speichern Sie die Datei mit der Erweiterung .VBS.