Bagaimana mengubah direktori kerja saat ini menggunakan file batch

110

Saya butuh bantuan dalam menulis file batch. Saya memiliki jalur yang disimpan di root variabel sebagai berikut:

set root=D:\Work\Root

Kemudian saya mengubah direktori kerja saya ke root ini sebagai berikut:

cd %root%

Ketika saya menjalankan file batch ini dari mana saja di drive D, ini berhasil dilakukan. Tetapi ketika saya menjalankan file batch yang sama dari drive lain, cd% root% tidak berfungsi.

Apakah ada cara agar saya bisa mendapatkan huruf drive dari variabel root? Saya kemudian dapat mengubah direktori saat ini ke drive ini terlebih dahulu dan kemudian cd% root% akan berfungsi.

Ananya
sumber

Jawaban:

160

Tentukan juga /Duntuk mengubah drive.

CD /D %root%
Andriy M
sumber
1
Jawaban lain mengatakan \d(huruf kecil) apakah ada perbedaan antara keduanya? Apakah opsi tidak peka huruf besar / kecil?
josch
3
@josch: Ya, jika kita berbicara tentang perintah internal CMD, maka parameter switch seperti di /Datas tidak case-insensitive ( /D= /d), seperti perintah itu sendiri ( CD= cd). Saya percaya itu juga berlaku untuk semua utilitas baris perintah Windows eksternal (seperti FINDSTR, SORTdll.) Alat pihak ketiga, di sisi lain, dapat menggunakan parameter case-sensitive.
Andriy M
tidak layak jawaban sendiri, tetapi Anda bisa set "root=/d D:\Work\Root"dan cd %root%atau bahkan set "root=cd /d D:\Work\Root"dan hanya%root%
Stephan
40

Cukup gunakan cd /d %root%untuk mengganti huruf driver dan mengubah direktori.

Alternatifnya, gunakan pushd %root%untuk mengganti huruf drive saat mengubah direktori serta menyimpan direktori sebelumnya di tumpukan sehingga Anda dapat menggunakan popduntuk beralih kembali.

Perhatikan itu pushdjuga akan memungkinkan Anda untuk mengubah direktori ke jaringan berbagi. Ini benar-benar akan memetakan drive jaringan untuk Anda, lalu menghapusnya saat Anda menjalankan popddirektori untuk itu.

Gabe
sumber
29

Coba ini

chdir /d D:\Work\Root

Nikmati rooting;)

ikan pari_
sumber
6
Rooting? Apa artinya itu dalam konteks ini?
Mathias Lykkegaard Lorenzen
Perlu dicatat bahwa direktori sebelum dan sesudah, "harus diletakkan seperti ini; chdir / d" D: \ Work \ Root "
Ad Infinitum
12

Sintaks yang lebih sederhana mungkin

pushd% root%

NapkinBob
sumber
3
Wow, dari semua solusi, peringkat terendah adalah yang benar-benar berfungsi dengan sangat baik! Terima kasih!
Arto Kalishian