Batch Datei - Programm ausführen - Problem?
Hallo,
Ich möchte eine .exe ausführen per Batch. Diese Datei liegt aber auf einem anderen Laufwerk/Pfad.
Mit folgendem Befehl wird die Datei auch ausgeführt. Das Problem hierbei scheint, dass das Programm irgendwie nicht alles im Ordner lädt was es braucht um zu starten, es gibt eine Fehlermeldung aus.
- start "" "E:\Daten\1\2\3\xyz.exe"
Wenn ich also vorher in das richtige Verzeichnis erst wechsele:
- cmd /K cd /d "E:\Daten\1\2\3\"
und dann nur noch "xyz.exe" eingebe funktioniert es einwandfrei und das Programm lädt auch wunderbar. Woran das wohl liegt!?
Da ich das aber wo einbaue, soll es erst das richtige Verzeichnis wählen und dann die .exe ausführen. So wie es manuell auch funktioniert. Das soll nach einem "goto" ausgeführt werden.
Momentan sieht es einfach so aus:
- :$programmstart
- cmd /K cd /d "E:\Daten\1\2\3\"
- xyz.exe
- goto $START
Man kann den Pfad irgendwie bekannt machen, dass es so einfach wie firefox oder word unter c programme oder system gefunden wird, das möchte ich jedoch nicht.
Wie mache ich das? Es gibt bestimmt eine professionellere Lösung dafür und keine solch laienhafte Bastelei :p!
Danke
4 Antworten
Hast Du es mal mit dem "START"-Kommando versucht? Dein Programm benötigt wohl (s)ein Working Directory. Mit "START" kannst Du das als Parameter /D mitgeben, also in etwa so:
help start
Starts a separate window to run a specified program or command.
START ["title"] [/D path] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
[/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
[/NODE <NUMA node>] [/AFFINITY <hex affinity mask>] [/WAIT] [/B]
[command/program] [parameters]
"title" Title to display in window title bar.
path Starting directory.
<- SNIP ->
START /D my_working_directory my_working_directory\xyz.exe
Das wäre dann auch flexibel, d.h. Du könntest my_working_directory über was auch immer einlesen, in einer Varaible speichern und beim Ausruf entsprechend mitgeben. einzige Voraussetzung: my_working_directory ist tatsächlich richtig, d.h. existiert und enthält Deine exe ...
Ich mache sehr oft sowas. In Deinem Fall würde ich mit cd in das Verzeichnis des Programmes wechseln und dort starten.
@echo off
c:
cd \Programs\...\ (Pfad der exe)
call xyz.exe
Der Grund liegt vermutlich darin, dass zur exe noch einige dll gehören.
Wenn das ein Programm ist, das von überall gestartet werden können soll (z.B. ein Editor), kannst den Pfad auch in der Systemvariablen %path% erweitern.
Gehts mit
START "" /D "E:\Daten\1\2\3\" xyz.exe
?
E:/Daten/1/2/3/xyz.exe eingeben ?
danke hab es sehr ähnlich nun umgesetzt,weisst du zufällig warum die cmd wartet bis man das Programm wieder schließt um den nächsten Befehl zu starten. Möchte dass nach dem Starten des Programms mit goto es wieder zurück. Die cmd ist solange schwarz bis ich das gestartete Programm wieder schließe. geht das iwie.