Imponi a Windows di utilizzare .EXE su PATH anziché il comando interno CMD.EXE


9

Quando eseguo un comando con lo stesso nome di un comando interno, invece di cercare nel percorso Windows utilizza semplicemente quello trovato in CMD.EXE.

Ad esempio, MKDIR è un comando interno incorporato CMD.EXE. Non supporta le stesse opzioni della versione Unix (ad es. -pE --help). Se uso queste opzioni, Windows creerà semplicemente i file denominati -p o --help anche se ho la versione GNU di mkdir installata in una directory nel mio percorso.

Questo diventa un problema quando si lavora con alcuni programmi che usano mkdir attraverso il terminale. Ad esempio, il file gulp per prosa contiene tre mkdir -pcomandi che, creano una cartella -pnella directory di lavoro e quindi generano errori. Devo modificare manualmente il gulpfile in modo che utilizzi il file mkdir.exe installato , il che mi rende più difficile condividere la mia piattaforma multipiattaforma.

Come posso forzare la shell di Windows a utilizzare il mkdir.exetrovato in PATH anziché CMD.EXE?

Risposte:


14

Come posso forzare la shell di Windows a utilizzare il file mkdir.exe presente in PATH anziché in CMD.EXE?

Circonda il nome dell'eseguibile tra virgolette. Per esempio:

"MKDIR"

Questo costringe Windows a cercare il tuo eseguibile invece di eseguire il comando interno. Se hai parametri che richiedono anche virgolette doppie, usa questa sintassi:

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

1
In alternativa dovresti essere in grado di specificare il percorso completo del programma mkdir che desideri chiamare.
davidgo,

Purtroppo questo non funziona. Quello che fa è che crea un nuovo file chiamato ".exe" nella directory corrente. @davidgo Posso specificare l'intero percorso, ma questo diventa un problema con la condivisione del mio codice con altri: non tutti hanno localizzato mkdir C:\Program Files (x86)\Git\bin\mkdir.exe!
umop aplsdn,

2
Circondato da virgolette doppie funziona! Non è nemmeno necessario specificare l'estensione - solo "mkdir". Grazie!
umop aplsdn,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.