Considere o seguinte arquivo em lote test.bat
:
CD C:\SOFTWARE
program.exe
Este script é executado a partirC:\ELSWHERE
C:\ELSWHERE> C:\test.bat
Após o script sair, o diretório de trabalho atual é agora C:\SOFTWARE
e não o diretório de trabalho anterior C:\ELSWHERE
.
O script altera o diretório de trabalho para C:\SOFTWARE
porque program.exe
requer config.ini
que está localizado C:\SOFTWARE
e o localiza usando o diretório de trabalho atual. Se o software program.exe
for executado diretamente de, digamos, C:\
ou C:\ELSWHERE
usando seu nome de caminho absoluto, o programa não poderá ler sua configuração e gerar um erro. A solução para isso é acessar CD
a C:\SOFTWARE
pasta primeiro e executar o programa a partir daí.
O problema de fazer isso em um arquivo de lote é que isso também altera o diretório de trabalho do ambiente anterior, seja o diretório de trabalho do host COMMAND.COM ou outro arquivo de lote.
Isso não é um problema de um prompt de comando baseado em NT que tem acesso a pushd
e popd
, juntamente com outras variáveis de ambiente úteis para preservar o antigo diretório de trabalho. Mas é possível fazer isso dentro das restrições do antigo command.com MS-DOS\Win9x?
Isso funciona até com MSDOS6.22
pwd.bat
Ele armazena o diretório atual na variável pwd e o drive atual na variável drive .
Isso pode ser usado para restaurar o diretório anterior.
No seu caso