2017-01-31 3 views
0

Ich habe eine Batch-Datei, die einen anderen aufrufen soll. Ich habe gelesen, dass call Befehl in diesem Fall verwendet wird. Obwohl eine Fehlermeldung angezeigt wird:Aufruf von Batch-Datei-Berichten: "Das System kann den angegebenen Pfad nicht finden"

Das System kann den angegebenen Pfad nicht finden.

Der Pfad ist nicht falsch 100% sicher. Dies ist der Anrufer run.bat

@echo off 
call xslt\projects\asp-bus\implementation\batch\ant-start.bat 
pause 

und dies wird die ant-start.bat genannt

set ant="../../../../infrastucture/apache-ant-1.10.0/bin/ant.bat" 
call %ant% 
pause 
+1

In Ihrem 'ant-start.bat' Skript müssen Sie Schrägstriche'/'durch Backslashes' \\ 'ersetzen. Windows arbeitet nicht mit Schrägstrichen –

Antwort

0

In jeder Batch-Datei, die Pfade sind relativ zum Arbeitsordner Sie aus, nicht die Batch-Datei ausgeführt wird die Ordner, der die Batch-Datei selbst enthält. Sie müssen entweder absolute Pfade verwenden (z. B. beginnend mit C:\) oder sicherstellen, dass jede Stapelverarbeitungsdatei aus einem Arbeitsordner ausgeführt wird, in dem die relativen Pfade sinnvoll sind.

Wenn Sie run.bat über eine Windows-Verknüpfung starten, können Sie den Ordner "Start In" im Dialogfeld "Eigenschaften" der Verknüpfung festlegen. Wenn ant-start.bat aufgerufen wird, wird es aus dem gleichen Ordner wie run.bat ausgeführt.

das Problem zu beheben, könnte man ant-start.bat zu

set ant="infrastucture/apache-ant-1.10.0/bin/ant.bat" 
call %ant% 
pause 

Alternativ ändern müssen, können Sie einen cd Befehl in einen der Batch-Dateien setzen könnten, um es zu zwingen einen entsprechenden Arbeitsordner zu verwenden.

Bedenken Sie, dass wenn Sie die %ant% Variable auf einen relativen Pfad wie oben festgelegt haben, die Verwendung der Variablen nur von einem Ordner funktioniert, in dem dieser relative Pfad sinnvoll ist.

Verwandte Themen