Примушуйте Windows використовувати .EXE на PATH, а не на внутрішній команді CMD.EXE


9

Коли я виконую команду з тим же ім'ям, що і внутрішня команда, замість пошуку в шляху Windows просто використовує ту, знайдену в CMD.EXE.

Наприклад, MKDIR - це вбудована внутрішня команда CMD.EXE. Він не підтримує ті самі параметри, що і версія Unix (наприклад, -pта --help). Якщо я використовую ці параметри, Windows просто створить файли з назвою -p або --help, хоча в каталозі на моєму шляху встановлена версія GNU mkdir .

Це стає проблемою при роботі з певними програмами, які використовують mkdir через термінал. Наприклад, gulpfile для прози містить три mkdir -pкоманди, які створюють папку -pв робочому каталозі та видаляють помилки. Я повинен вручну редагувати gulpfile таким чином, щоб він використовував встановлений mkdir.exe , що ускладнює мені спільний доступ до моєї вилки крос-платформи.

Як я можу змусити оболонку Windows використовувати mkdir.exeзнайдене в PATH, а не CMD.EXE?

Відповіді:


14

Як я можу змусити оболонку Windows використовувати mkdir.exe, знайдений у PATH, а не CMD.EXE?

Навколишнє ім'я виконавця у подвійних лапках. Наприклад:

"MKDIR"

Це змушує Windows шукати свій виконуваний файл, а не виконувати внутрішню команду. Якщо у вас є параметри, які також потребують подвійних лапок, використовуйте цей синтаксис:

"MKDIR" -firstParam "C:\foobar\long file name.ext"

1
Крім того, ви повинні мати можливість вказати повний шлях до програми mkdir, яку ви хочете зателефонувати.
davidgo

На жаль, це не працює. Для цього створюється новий файл під назвою ".exe" у поточному каталозі. @davidgo Я можу вказати весь шлях, але це стає проблемою при спільному використанні мого коду з іншими: не кожен mkdir знаходиться в C:\Program Files (x86)\Git\bin\mkdir.exe!
umop aplsdn

2
Оточення в подвійних лапках працює! Вам навіть не потрібно вказувати розширення - просто "mkdir". Дякую!
umop aplsdn
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.