2012-03-07 14 views
30

Powiedzmy mam te polecenia:Jak ustawić katalog roboczy polecenia w pliku wsadowym Windows?

Prog1.exe 
D:\SomeDir\Prog2.exe 
Prog3.exe 

Teraz, powiedzmy na drugiej linii, chciałbym katalog roboczy do D: \ katalog, ale w Prog1.exe i Prog3.exe Chcę domyślne katalog roboczy (zwykle tam, gdzie znajduje się plik .bat). Jeśli spróbuję wykonać tę operację, w programie SomeDir zostanie wykonane polecenie Prog3, co nie jest tym, czego chcę.

Odpowiedz

53

Można użyć polecenia pushd/popd (Pomoc z pushd /?)

Prog1.exe 
Pushd D:\SomeDir 
Prog2.exe 
popd 
Prog3.exe 
10

Można użyć polecenia cd (pomoc z cd /?) ze ścieżki, plik bat, zmienna% 0.

Prog1.exe 
cd D:\SomeDir 
Prog2.exe 
cd %dp0 
Prog3.exe 

Pełną listę modyfikatorów% 0 zobaczyć call /? lub for /? pomocy.

Jednak dodaje się tylko to, aby zapewnić pełniejszą odpowiedź na przepełnienie stosu. ZALECAMbym używać powyższego rozwiązania firmy jeb.

6

Co pracował dla mnie jest dodanie /d:

cd /d C:\nginx 
ECHO Stopping nginx... 
start nginx -s quit 

(. Kiedy nie ma /d, to nie działa)

https://stackoverflow.com/a/18310141/470749 stara się to wyjaśnić.

+2

co znaczy/d? –

+4

@ СеменихинМаксим, Z dokumentacji: "Użyj przełącznika/D, aby zmienić bieżący dysk oprócz zmiany bieżącego katalogu dla dysku." Zasadniczo zawsze chcesz go określić podczas zmiany katalogu na dowolne ścieżki bezwzględne. – Mikhail

Powiązane problemy