Jak zmienić bieżący katalog roboczy za pomocą pliku wsadowego

110

Potrzebuję pomocy w napisaniu pliku wsadowego. Mam ścieżkę przechowywaną w zmiennej głównej w następujący sposób:

set root=D:\Work\Root

Następnie zmieniam katalog roboczy na ten katalog główny w następujący sposób:

cd %root%

Kiedy uruchamiam ten plik wsadowy z dowolnego miejsca na dysku D, kończy się to pomyślnie. Ale kiedy wykonuję ten sam plik wsadowy z innego dysku, cd% root% nie działa.

Czy istnieje sposób, aby uzyskać literę dysku ze zmiennej głównej? Następnie mogę najpierw zmienić bieżący katalog na ten dysk, a następnie powinien zadziałać cd% root%.

Ananya
źródło

Odpowiedzi:

160

Określ, /Daby zmienić również dysk.

CD /D %root%
Andriy M
źródło
1
Inne odpowiedzi mówią \d(małymi literami), czy istnieje różnica między nimi? Czy w opcji jest rozróżniana tylko wielkość liter?
josch
3
@josch: Tak, jeśli mówimy o wewnętrznych poleceniach CMD, to parametry przełączania, jak /Dpowyżej, nie uwzględniają wielkości liter ( /D= /d), tak jak same polecenia ( CD= cd). Wierzę, że jest również prawdziwe dla wszystkich zewnętrznych narzędzi wiersza polecenia systemu Windows (takich jak FINDSTR, SORTitp) narzędzi innych firm, z drugiej strony, można użyć parametrów wielkość liter.
Andriy M
nie warte własnej odpowiedzi, ale możesz, set "root=/d D:\Work\Root"a cd %root%nawet set "root=cd /d D:\Work\Root"i po prostu%root%
Stephan
40

Po prostu użyj, cd /d %root%aby zmienić litery sterowników i zmienić katalogi.

Alternatywnie użyj pushd %root%do przełączania liter dysków podczas zmiany katalogów, a także do przechowywania poprzedniego katalogu na stosie, aby można było użyć go popddo przełączenia się z powrotem.

Zauważ, że pushdpozwoli ci to również zmienić katalogi na udział sieciowy. W rzeczywistości zmapuje dla ciebie dysk sieciowy, a następnie usunie go, gdy wykonasz popddla tego katalogu.

Gabe
źródło
29

Spróbuj tego

chdir /d D:\Work\Root

Ciesz się rootowaniem;)

płaszczka_
źródło
6
Korzenie? Co to w ogóle oznacza w tym kontekście?
Mathias Lykkegaard Lorenzen
Należy zauważyć, że przed i po katalogu "należy umieścić w ten sposób; chdir / d" D: \ Work \ Root "
Ad Infinitum
12

Mogłaby być prostsza składnia

pushd% root%

NapkinBob
źródło
3
Wow, ze wszystkich rozwiązań najniższy ranking to ten, który działał jak marzenie! Dzięki!
Arto Kalishian,