Como excluir o diretório atual da pesquisa executável no Windows?

0

Ao digitar um comando no shell do Windows, ele primeiro procura o programa no diretório atual e, em seguida, nos diretórios PATH. É possível de alguma forma (por exemplo, por uma variável de ambiente) excluir o diretório atual da pesquisa? Algo como SafeDllSearchMode mas para executáveis em vez de DLL-s?

Em outras palavras - se eu tiver um foo.exe no diretório atual e o segundo em outro diretório no PATH, como posso executar aquele no diretório PATH sem especificar seu caminho completo?

    
por Aivar 15.07.2016 / 11:01

1 resposta

0

Eu não sei de nenhuma maneira de fazer o cmd excluir o caminho atual. Como uma aproximação, no entanto, você poderia usar o mkdir para criar um diretório vazio no diretório atual, fazer o cd nele, executar o comando, fazer o backup de cd e remover o diretório:

SET _tempdir=%date%%time%
MKDIR %_tempdir%
CD %_tempdir%
REM run commands
...
CD ..
RM %_tempdir%

O diretório vazio pode estar em qualquer lugar que você tenha acesso de gravação, é claro; se estiver em outro lugar que não seja o mesmo diretório, provavelmente será mais fácil usar o pushd para entrar nele e popd para sair antes de removê-lo. Usar um diretório vazio que você acabou de criar parece uma idéia melhor do que copiar para um diretório aleatório, embora - o novo diretório ainda seja o primeiro no caminho, então é melhor usar um que você saiba que está vazio.

    
por 15.07.2016 / 15:53