Lassen Sie die Batch-Datei relativ zum tatsächlichen Ordner und nicht zur Verknüpfung ausführen


8

Ich habe einige Batch-Dateien erstellt, mit denen Dateien relativ zu dem Ordner verschoben werden, in dem sich die Batch-Datei befindet.

Ich habe den Ordner mithilfe von Symbolleisten => Neue Symbolleiste zu meiner Taskleiste hinzugefügt. Wenn ich jedoch jetzt die Batchdateien ausführe, lautet die Startposition Eigene Dateien (U :) und nicht der tatsächliche Speicherort der Batchdateien. Gibt es eine Möglichkeit, den tatsächlichen Pfad zu verwenden?

Antworten:


10

Fügen Sie Folgendes oben in Ihre Batch-Datei ein:

CD /D %~dp0

Erläuterung:

  • Die /DOption weist Sie CDan, das aktuelle Laufwerk sowie das aktuelle Verzeichnis für ein Laufwerk zu ändern.
  • %0 ist der Name der Batchdatei
  • Das ~sagt, wir wollen einige Modifikatoren verwenden
  • d wird erweitert, um Buchstaben zu fahren.
  • p erweitert sich zu einem Pfad.

Dies %~dp0gilt auch für das Verzeichnis, in dem sich die Batchdatei befindet.


Die CD funktioniert einwandfrei, ändert jedoch nichts an der Laufwerksbezeichnung, sodass das Skript weiterhin versucht, auf U: \
ck ausgeführt zu werden.

Haben Sie% ~ d0 hinzugefügt, um das Laufwerk gemäß Ihrer Erklärung zu ändern.
ck.

@ck - Laufwerke vergessen, sorry. Es ist wahrscheinlich am einfachsten zu bedienen CD /D. Habe die Antwort bearbeitet, um dies widerzuspiegeln.
Dave Webb

wir können PUSHDanstelle vonCD /D
Tuan Anh Hoang-Vu
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.