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%.

Odpowiedzi:


160

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

CD /D %root%

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.



12

Mogłaby być prostsza składnia

pushd% root%


3
Wow, ze wszystkich rozwiązań najniższy ranking to ten, który działał jak marzenie! Dzięki!
Arto Kalishian,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.