O diretório atual é uma propriedade de um processo. Diferentes processos podem ter diretórios atuais diferentes e um processo não pode modificar o diretório atual de outro processo.
Quando você abre a janela de comando (às vezes erroneamente chamada de janela do DOS), ela inicia cmd.exe
. Esse cmd.exe
pode executar comandos que você digita no teclado, bem como comandos de um arquivo .bat
ou .cmd
. Não sabe sobre .sh
arquivos.
O script de shell .sh
é executado iniciando um shell, um processo diferente e os comandos no arquivo .sh
alteram o diretório atual do processo do shell. Não altera o diretório do interpretador de comandos cmd.exe
.
O arquivo em lote é executado pelo interpretador de comandos cmd.exe
e, portanto, altera o diretório atual do interpretador de comandos. Essa alteração ainda está em vigor após a conclusão do arquivo em lote.