Erzwingen Sie die Verwendung von .EXE für PATH anstelle des internen Befehls CMD.EXE

1071
umop aplsdn

Wenn ich einen Befehl mit demselben Namen wie ein interner Befehl ausführe, verwendet Windows einfach den in CMD.EXE enthaltenen Befehl, anstatt im Pfad zu suchen.

Zum Beispiel ist MKDIR ein interner Befehl CMD.EXE. Es unterstützt nicht die gleichen Optionen wie die Unix-Version (z . B. -pund --help). Wenn ich diese Optionen verwende, erstellt Windows einfach Dateien mit dem Namen -p oder --help, obwohl ich die GNU-Version von mkdir in einem Verzeichnis in meinem Pfad installiert habe.

Dies wird problematisch, wenn Sie mit bestimmten Programmen arbeiten, die mkdir über das Terminal verwenden. Die Datei gulpfile for prose enthält beispielsweise drei mkdir -pBefehle, die einen Ordner -pim Arbeitsverzeichnis erstellen und dann Fehler auslösen . Ich muss das gulpfile manuell bearbeiten, so dass es die installierte Datei mkdir.exe verwendet, was es für mich schwieriger macht, meine Fork-Plattform zu teilen.

Wie kann ich erzwingen, dass die Windows-Shell die mkdir.exein PATH gefundenen Daten anstelle von CMD.EXE verwendet?

8

1 Antwort auf die Frage

12
Twisty Impersonator

Wie kann ich erzwingen, dass die Windows-Shell die Datei mkdir.exe verwendet, die sich in PATH anstelle von CMD.EXE befindet?

Umgeben Sie den Namen der ausführbaren Datei in Anführungszeichen. Zum Beispiel:

"MKDIR" 

Dadurch muss Windows nach Ihrer ausführbaren Datei suchen, anstatt den internen Befehl auszuführen. Wenn Sie Parameter haben, für die auch doppelte Anführungszeichen erforderlich sind, verwenden Sie diese Syntax:

"MKDIR" -firstParam "C:\foobar\long file name.ext" 
Alternativ können Sie auch den vollständigen Pfad zu dem Programm mkdir angeben, das Sie aufrufen möchten. davidgo vor 9 Jahren 1
Leider funktioniert das nicht. Sie erstellt eine neue Datei mit dem Namen ".exe" im aktuellen Verzeichnis. @davidgo Ich kann den gesamten Pfad angeben, aber das wird zum Problem, wenn mein Code mit anderen geteilt wird: Nicht jeder hat mkdir in `C: \ Programme (x86) \ Git \ bin \ mkdir.exe`! umop aplsdn vor 9 Jahren 0
Umgeben von Anführungszeichen Sie müssen nicht einmal die Erweiterung angeben - einfach "mkdir" `. Vielen Dank! umop aplsdn vor 9 Jahren 2