WindowsがCMD.EXE内部コマンドではなくPATHで.EXEを使用することを強制する


9

内部コマンドと同じ名前のコマンドを実行すると、パスを検索する代わりに、WindowsはCMD.EXEにあるものを使用します。

たとえば、MKDIRはに組み込まれた内部コマンドCMD.EXEです。Unixバージョンと同じオプション(-pおよびなど--help)はサポートしていません。これらのオプションを使用すると、パスのディレクトリにGNUバージョンのmkdirがインストールされている場合でも、Windowsは単に-pまたは--helpという名前のファイルを作成します。

これは、ターミナルからmkdirを使用する特定のプログラムを操作するときに問題になります。たとえば、散文用gulpfileには、作業ディレクトリにmkdir -pフォルダー-pを作成してエラーをスローする3つのコマンドが含まれています。インストールされたmkdir.exeを使用するようにgulpfileを手動で編集する必要があるため、フォークのクロスプラットフォームを共有することが難しくなります。

Windowsシェルにmkdir.exeCMD.EXEではなくPATHで見つかったものを使用させるにはどうすればよいですか?

回答:


14

Windowsシェルに、CMD.EXEではなく、PATHにあるmkdir.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 2014

2
二重引用符で囲むと機能します。拡張子を指定する必要もありません-だけ"mkdir"です。ありがとう!
umop aplsdn 2014
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.