强制Windows在PATH而不是CMD.EXE内部命令上使用.EXE


9

当我执行与内部命令同名的命令时,而不是在路径中搜索,Windows只会使用CMD.EXE中的命令。

例如,MKDIR是内置的内部命令CMD.EXE。它不支持与Unix版本相同的选项(例如-p--help)。如果我使用这些选项,即使我在路径中的目录中安装了GNU版本的mkdir, Windows也会简单地创建名为-p--help的文件。

当通过终端使用某些使用mkdir的程序时,这成为一个问题。例如,散文gulpfile包含三个mkdir -p命令,这些命令-p在工作目录中创建一个文件夹,然后引发错误。我必须手动编辑gulpfile,以便它使用已安装的mkdir.exe,这使我更难以共享自己的fork跨平台。

如何强制Windows Shell使用mkdir.exe在PATH中找到的而不是CMD.EXE?

Answers:


14

如何强制Windows Shell使用在PATH中找到的mkdir.exe而不是CMD.EXE?

用双引号将可执行文件名引起来。例如:

"MKDIR"

这将迫使Windows查找可执行文件,而不是运行内部命令。如果您的参数也需要双引号,请使用以下语法:

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

1
另外,您应该能够指定要调用的mkdir程序的完整路径。
davidgo,2014年

不幸的是,这不起作用。它的作用是在当前目录中创建一个名为“ .exe”的新文件。@davidgo我可以指定整个路径,但这与其他人共享我的代码成为一个问题:并非每个人的mkdir都位于C:\Program Files (x86)\Git\bin\mkdir.exe
umop aplsdn

2
用双引号引起来!您甚至不需要指定扩展名-只需指定"mkdir"。谢谢!
umop aplsdn
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.