Ich habe eine bat
Datei auf Windows, die eine Procdump- Operation ausführen . Das Problem mit der Batch-Datei ist, dass ich zuerst in das Batch-Dateiverzeichnis wechseln muss, bevor ich den Job ausführe, sonst funktioniert das Skript nicht.
Wie wechsle ich in das aktuelle Batch-Dateiverzeichnis?
Ich habe versucht, den folgenden Code in meinem procdump.bat
:
cd "%~dp"
procdump -h devenv.exe mydump.txt
Aber es ist fehlgeschlagen, die Fehlermeldung lautet:
Die folgende Verwendung des Pfadoperators bei der Batch-Parameter-Ersetzung ist ungültig:% ~ dp "
Für gültige Formate geben Sie CALL /? oder für /?
Bearbeiten: Die angegebene Antwort funktioniert, aber es gibt nur einen Haken: Wenn sich mein aktuelles Verzeichnis vom Batch-Dateiverzeichnis unterscheidet, wird die Meldung "Das System kann den angegebenen Pfad nicht finden" angezeigt. Hat jemand irgendwelche Ideen?
quelle
Antworten:
Ok, ich glaube, ich habe hier gefunden , was du damit meinst
%~dp
.Ich denke, was Sie wirklich tun möchten, ist Folgendes:
(!) Beachten Sie jedoch, dass Sie dadurch immer noch nicht das richtige Verhalten erhalten, wenn Sie versuchen, Ihren Stapel auszuführen, während sich das aktuelle Verzeichnis auf einem anderen Laufwerk befindet, dacd
das aktive Laufwerk nicht geändert wird.Bearbeiten : Anscheinend (dank @Yoopergeek ) können Sie den
/D
Parameter zumcd
Befehl hinzufügen , damit er auch das aktive Laufwerk ändert.quelle
help call
an einercmd
Eingabeaufforderung.%~dp0
cd /D
odercd "%~dp0" /D
kann nicht helfen.cd /D "%~dp0"
. Vielen Dank.Ich würde fretjes Antwort einen Kommentar hinterlassen, aber offensichtlich kann ich das nicht ???
Wie auch immer, in Bezug auf den Hinweis:
Beachten Sie jedoch, dass dies immer noch nicht das richtige Verhalten für Sie darstellt, wenn Sie versuchen, Ihren Stapel auszuführen, während sich das aktuelle Verzeichnis auf einem anderen Laufwerk befindet, da CD das aktive Laufwerk nicht ändert.
Verwenden Sie den
/D
Schalter in Ihrem CD-Befehl, und CD wird das aktive Laufwerk ändern.quelle