Memaksa Windows menggunakan .EXE pada PATH daripada perintah internal CMD.EXE

9

Ketika saya menjalankan perintah dengan nama yang sama dengan perintah internal, alih-alih mencari di jalur Windows hanya menggunakan yang ditemukan di CMD.EXE.

Sebagai contoh, MKDIR adalah perintah internal yang dibangun CMD.EXE. Itu tidak mendukung opsi yang sama dengan versi Unix (misalnya -pdan --help). Jika saya menggunakan opsi ini, Windows hanya akan membuat file bernama -p atau --help walaupun saya sudah menginstal GNU versi mkdir di direktori di jalur saya.

Ini menjadi masalah ketika bekerja dengan program-program tertentu yang menggunakan mkdir melalui terminal. Sebagai contoh, gulpfile untuk prosa berisi tiga mkdir -pperintah itu, buat folder -pdi direktori kerja dan kemudian buang kesalahan. Saya harus mengedit gulpfile secara manual sehingga menggunakan mkdir.exe yang terinstal , yang membuatnya lebih sulit bagi saya untuk berbagi lintas-platform garpu.

Bagaimana saya bisa memaksa shell Windows untuk menggunakan yang mkdir.exeditemukan di PATH daripada CMD.EXE?

umop aplsdn
sumber

Jawaban:

14

Bagaimana saya bisa memaksa shell Windows untuk menggunakan mkdir.exe yang ditemukan di PATH daripada CMD.EXE?

Kelilingi nama yang dapat dieksekusi dalam tanda kutip ganda. Sebagai contoh:

"MKDIR"

Ini memaksa Windows untuk mencari yang bisa dieksekusi daripada menjalankan perintah internal. Jika Anda memiliki parameter yang juga memerlukan tanda kutip ganda, gunakan sintaks ini:

"MKDIR" -firstParam "C:\foobar\long file name.ext"
Saya katakan Reinstate Monica
sumber
1
Atau Anda harus dapat menentukan path lengkap ke program mkdir yang ingin Anda panggil.
davidgo
Sayangnya ini tidak berhasil. Apa yang dilakukannya adalah membuat file baru bernama ".exe" di direktori saat ini. @davidgo Saya dapat menentukan seluruh jalur, tetapi itu menjadi masalah dengan berbagi kode saya dengan yang lain: tidak semua orang memiliki mkdir di dalamnya C:\Program Files (x86)\Git\bin\mkdir.exe!
umop aplsdn
2
Dikelilingi dalam tanda kutip ganda berfungsi! Anda bahkan tidak perlu menentukan ekstensi - cukup "mkdir". Terima kasih!
umop aplsdn