Forçar o uso do Windows .EXE no PATH em vez do comando interno CMD.EXE

8

Quando executo um comando com o mesmo nome de um comando interno, em vez de pesquisar no caminho, o Windows simplesmente usa o encontrado no arquivo CMD.EXE.

Por exemplo, MKDIR é um comando interno incorporado em CMD.EXE . Não suporta as mesmas opções que a versão Unix (por exemplo, -p e --help ). Se eu usar essas opções, o Windows irá simplesmente criar arquivos chamados -p ou - help mesmo que eu tenha a versão GNU do mkdir instalado em um diretório no meu caminho.

Isso se torna um problema ao trabalhar com determinados programas que usam mkdir através do terminal. Por exemplo, o gulpfile for prose contém três comandos mkdir -p que criam uma pasta -p no diretório de trabalho e, em seguida, lançar erros. Eu tenho que editar manualmente o gulpfile de forma que ele use o mkdir.exe instalado, o que torna mais difícil para mim compartilhar minha plataforma cruzada de garfo.

Como posso forçar o shell do Windows a usar o mkdir.exe encontrado no PATH em vez do CMD.EXE?

    
por umop aplsdn 24.12.2014 / 23:07

1 resposta

12

How can I force the Windows shell to use the mkdir.exe found in PATH rather than CMD.EXE?

Coloque o nome do executável entre aspas duplas. Por exemplo:

"MKDIR"

Isso força o Windows a procurar seu executável em vez de executar o comando interno. Se você tiver parâmetros que também exigem aspas duplas, use esta sintaxe:

"MKDIR" -firstParam "C:\foobar\long file name.ext"
    
por 24.12.2014 / 23:18