Deixe-me ilustrar o problema com um exemplo. Eu criei um arquivo em lote simples de uma linha Test.bat em C:\Program Files
com o seguinte conteúdo:
@echo Batch dir = "%~dp0"
Agora, de D:\
, se eu invocar o arquivo em lote com C:\Program Files\Test
, ele diz:
Batch dir = "C:\Program Files\"
Se eu modificar o PATH usando set path=%path%;C:\Program Files
e invocar o arquivo em lote com um simples Test
, ele diz:
Batch dir = "C:\Program Files\"
Finalmente, se eu criar um link simbólico usando mklink Test.bat "C:\Program Files\Test.bat"
e invocá-lo com um simples Test
, ele diz:
Batch dir = "D:\"
Como você pode ver, o diretório de trabalho atual é diferente neste caso. Não é de admirar que seus aplicativos estejam reclamando de arquivos que eles esperam que estejam faltando no diretório do executável.
Se você não quiser adicionar muitos diretórios ao PATH, basta adicionar um que contenha arquivos em lote para cada um dos seus aplicativos.