Como forçar um script .bat executar comandos a partir da pasta raiz de execução do script

Supondo que você necessite executar um mesmo script de diversos locais diferentes, onde você não saberá exatamente qual será a unidade ou raiz que será executado (exemplo, um pendrive)  e que este script dependa de outros arquivos que estão na mesma pasta do script, ou em subpastas a partir da pasta do script.

Para conseguir essa independência de local (e de usuário, já que isso também influencia na pasta raiz de execução do cmd), pode-se inserir os caracteres 

%~dp0

%0 contém o diretório completo do .bat que está sendo executado.

~dp diz para obter o drive e caminho, incluindo o \


Exemplo: 

Supondo que tenha um pasta adobeacrobatdc na pasta raiz do script, e dentro possua o arquivo AcroRdrDC_pt.msi

a linha ficaria assim:

msiexec.exe /i "%~dp0adobeacrobatdc\AcroRdrDC_pt.msi"


Fontes: 

https://stackoverflow.com/questions/2730643/how-to-execute-programs-in-the-same-directory-as-the-windows-batch-file

Comentários

Postagens mais visitadas deste blog

Lava-louças Brastemp BLE20 - RESOLVIDO - Piscando luzes Iniciar e enxaguar/Erro ao jogar água fora

Microsoft Print to PDF não aparece na lista de impressoras nos programas