[BATCH] Aus .bat eine .bat im Unterverzeichnis richtig aufrufen

RedWraith

Mitglied
Hallo !

Es ist mir ein bisschen peinlich, dass zuzugeben, aber ich habe ein Problem mit zwei kleinen Batchskripten.

Ich habe folgende Ordnerstruktur:
Code:
C:\task\app1\myapp.exe
C:\task\app1\myapp.bat
C:\task\start.bat

Die Datei C:\task\start.bat sieht so aus:
Code:
@echo off
rem app1 starten
call .\app1\myapp.bat
@echo on

Die Datei C:\task\app1\myapp.bat sieht so aus:
Code:
rem starte app1
myapp.exe

Wenn ich die myapp.bat aufrufe, funktioniert das auch wunderbar, aber wenn ich die start.bat aufrufe, bekomme ich den Fehler, dass die datei myapp.exe nicht gefunden wurde.

Ich gehe davon aus, dass es daran liegt, dass der Ausführungspfad unterschiedlich ist und die exe deswegen nicht gefunden wird.

Code:
myapp.bat ausführen:
Ausführungspfad=C:\task\app1\
myapp.exe wird gefunden

start.bat ausführen:
Ausführungspfad=C:\task\
myapp.exe wird nicht gefunden

Die Frage ist nun, wie ich myapp.bat in start.bat aufrufen muss, damit in der myapp.bat der richtige 'Ort der Ausführung' angegeben wird ?
 
Hi.

Man kann das aktuelle Verzeichnis der gerade ausgeführten Batch-Datei folgendermaßen bestimmen:
Code:
%~dp0
Gruß
 
Hi !

Um oben genannten Fehler zu vermeiden, starte ich die Batches jetzt wie folgt:

Code:
Start /D %~dp0app1\ /WAIT myapp.bat

Das funktioniert wunderbar.
 
Hi.

Warum so kompiliziert?

Verwende doch in der myapp.bat einfach
Code:
%~dp0myapp.exe
So kannst du die myapp.bat von einem beliebigen Verzeichnis aufrufen.

Oder du könntest in der start.bat einfach das Verzeichnis wechseln:
Code:
cd /d %~dp0app1
call myapp.bat
Gruß
 

Neue Beiträge

Zurück