Ubah Direktori Sekarang ke Direktori File Batch

18

Saya memiliki batfile di windows yang menjalankan operasi procdump . Masalah dengan file batch adalah bahwa saya perlu cd ke direktori file batch terlebih dahulu sebelum menjalankan pekerjaan, atau skrip tidak akan berfungsi.

Bagaimana cara mengubah ke direktori file batch saat ini?

Saya mencoba kode berikut di procdump.bat:

cd "%~dp"
procdump -h devenv.exe mydump.txt

Tetapi gagal, pesan kesalahannya adalah:

Penggunaan operator path berikut dalam substitusi-parameter batch tidak valid:% ~ dp "

Untuk format yang valid ketik CALL /? atau untuk /?

Sunting: Jawaban yang diberikan berfungsi, tetapi hanya ada satu tangkapan: jika direktori saya saat ini berbeda dari direktori file batch, maka saya akan mendapatkan "Sistem tidak dapat menemukan jalur yang ditentukan". Adakah yang punya ide?

Graviton
sumber
Di mana Anda mendapatkan "% ~ dp" itu?
fretje

Jawaban:

24

Ok, saya pikir saya menemukan di sini apa yang Anda maksud dengan %~dp.

Saya pikir apa yang benar-benar ingin Anda lakukan adalah ini:

cd /D "%~dp0"

(!) Tetapi perhatikan bahwa ini masih tidak akan memberi Anda perilaku yang tepat ketika Anda mencoba untuk menjalankan batch Anda saat direktori saat ini di drive lain karena cdtidak mengubah drive yang aktif.

Sunting : Rupanya (terima kasih @Yoopergeek ) Anda dapat menambahkan /Dparameter ke cdperintah untuk membiarkannya juga mengubah drive yang aktif.

fretje
sumber
Untuk informasi lebih lanjut tentang parameter batch ini, lihat help calldi cmdprompt.
Dijeda sampai pemberitahuan lebih lanjut.
Omong-omong, Anda dapat menggabungkan parameter-parameter seperti ini:%~dp0
Dijeda hingga pemberitahuan lebih lanjut.
Jawaban Anda sangat membantu; tetapi jika direktori saya saat ini berada di direktori yang berbeda dengan file batch, maka perintah di atas akan gagal; bahkan cd /Datau cd "%~dp0" /Dtidak bisa membantu.
Graviton
@Ngu Soon Hui: Itu direktori Anda saat ini berada di direktori yang berbeda dari yang ada di file batch. Tetapi mengapa perintah itu gagal? Saya sudah mengujinya di sini dan itu berhasil.
fretje
1
Saya telah menemukan solusinya dengan menggunakan cd /D "%~dp0". Terima kasih.
Graviton
4

Saya akan meninggalkan komentar untuk jawaban fretje, tetapi ternyata saya tidak bisa ???


Ngomong-ngomong, mengenai catatan:
Tetapi perhatikan bahwa ini masih tidak akan memberi Anda perilaku yang benar ketika Anda mencoba untuk menjalankan batch Anda saat direktori saat ini di drive lain karena cd tidak mengubah drive yang aktif.


Gunakan /Dsakelar pada perintah CD Anda, dan CD akan mengubah drive yang aktif.

Yoopergeek
sumber
... namun saya dapat mengomentari jawaban saya sendiri. Man, sucks tidak memiliki perwakilan di ServerFault ... berharap beberapa perwakilan 'berdarah' ke sini.
Yoopergeek
1
@Yoopergeek: Anda dapat mengaitkan akun Anda. Itu akan memberi Anda 100 rep di sini jika rep Anda pada SO lebih tinggi dari 200.
fretje