So ändern Sie das aktuelle Arbeitsverzeichnis mithilfe einer Batchdatei


109

Ich brauche Hilfe beim Schreiben einer Batch-Datei. Ich habe einen Pfad in einer variablen Wurzel wie folgt gespeichert:

set root=D:\Work\Root

Dann ändere ich mein Arbeitsverzeichnis wie folgt in dieses Stammverzeichnis:

cd %root%

Wenn ich diese Batchdatei von einer beliebigen Stelle auf dem Laufwerk D aus ausführe, ist dies erfolgreich. Wenn ich jedoch dieselbe Batchdatei von einem anderen Laufwerk ausführe, funktioniert cd% root% nicht.

Gibt es eine Möglichkeit, den Laufwerksbuchstaben aus der Stammvariablen abzurufen? Ich kann dann zuerst das aktuelle Verzeichnis auf dieses Laufwerk ändern und dann soll cd% root% funktionieren.

Antworten:


160

Geben Sie /Dan, dass das Laufwerk ebenfalls geändert werden soll.

CD /D %root%

1
Andere Antworten sagen \d(Kleinbuchstaben), gibt es einen Unterschied zwischen beiden? Ist die Option nur unabhängig von Groß- und Kleinschreibung?
Josch

3
@josch: Ja, wenn es sich um die internen Befehle von CMD handelt, /Dwerden bei Schaltparametern wie oben die Groß- und Kleinschreibung nicht berücksichtigt ( /D= /d), genau wie bei den Befehlen selbst ( CD= cd). Ich glaube , dass für alle externen Windows - Befehlszeilenprogramme auch wahr ist (wie FINDSTR, SORTetc.) Tools von Drittanbietern, auf der anderen Seite, kann case-sensitiven Parameter verwenden.
Andriy M

Keine eigene Antwort wert, aber du kannst set "root=/d D:\Work\Root"und cd %root%oder sogar set "root=cd /d D:\Work\Root"und nur%root%
Stephan

40

Verwenden Sie einfach cd /d %root%, um Treiberbuchstaben zu wechseln und Verzeichnisse zu wechseln.

Alternativ können Sie pushd %root%beim Ändern von Verzeichnissen die Laufwerksbuchstaben wechseln und das vorherige Verzeichnis auf einem Stapel speichern, damit Sie es verwenden könnenpopd zurückschalten können.

Beachten Sie, pushddass Sie damit auch Verzeichnisse in eine Netzwerkfreigabe ändern können. Es wird tatsächlich ein Netzwerklaufwerk für Sie zugeordnet und dann die Zuordnung aufgehoben, wenn Sie das popdfür dieses Verzeichnis ausführen .


28

Versuche dies

chdir /d D:\Work\Root

Viel Spaß beim Wurzeln;)


6
Verwurzelung? Was bedeutet das in diesem Zusammenhang überhaupt?
Mathias Lykkegaard Lorenzen

Es sollte beachtet werden, dass vor und nach dem Verzeichnis "so gesetzt werden sollte; chdir / d" D: \ Work \ Root "
Ad Infinitum

12

Eine einfachere Syntax könnte sein

pushd% root%


3
Wow, von allen Lösungen ist der niedrigste Rang derjenige, der tatsächlich wie ein Zauber funktioniert hat! Vielen Dank!
Arto Kalishian
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.