Referência de arquivo em lote do Windows ao próprio diretório

5

Suponha que você tenha C:\foo\foo.bat , que precisa se referir a C:\foo\foo.txt . Pode ser executado a partir de um diretório diferente, mas precisa obter foo.txt de seu próprio diretório, não do diretório atual. Obviamente, isso pode ser feito colocando o caminho completo C:\foo\foo.txt em foo.bat .

A diferença é que, no momento em que se escreve o arquivo de lote, não se sabe onde ele ficará na máquina do usuário, então o que o arquivo batch realmente precisa fazer é obter o foo.txt do diretório onde eu moro, onde quer que isso aconteça . (Em um programa em C, eu usaria argv[0] , mas isso não parece funcionar com arquivos em lote.)

Existe uma maneira de fazer isso?

    
por rwallace 15.02.2011 / 23:39

1 resposta

14
%~dp0

Fornecerá o caminho completo para o script.

%~f0

Fornecerá o caminho completo para o script, incluindo o nome do script.

    
por 15.02.2011 / 23:47