Como fazer um lote chamar outro lote com base em sua localização?

1

Eu fiz um arquivo que vou colocar para download. Envolve um arquivo de lote chamando outro.

Na maioria das vezes isso não é um problema, mas no meu caso eu não tenho idéia de onde eles vão baixá-lo. Então, como posso fazer com que o primeiro arquivo de lote encontre sua localização e use sua localização para chamar o segundo.

Ambos os arquivos em lote estão na mesma pasta.

Obrigado.

Gizmobart
fonte
Você quer dizer, você precisa passar o caminho do arquivo baixado como um argumento para o segundo arquivo de lote? Além disso, o arquivo em lote está sendo chamado automaticamente ou pelo usuário?
jjk_charles
O usuário iniciará o primeiro Bach e então o Bach funcionará e chamará o 2ed bach que está na mesma pasta que o primeiro. O primeiro bach é um divulgador e termos de uso e o 2ed é o programa.
Gizmobart
Digamos que Bach 1 esteja em. \ ... \ ... \ oi depois que Bach 1 terminar, ele chamará. \… \… \ Hi \ Bach 2.
Gizmobart

Respostas:

4

O próprio nome do arquivo em lote (com caminho completo) está disponível como parâmetro 0. Juntamente com os modificadores, ele permite que você extraia o caminho:
echo "%~dp0" irá apenas imprimi-lo, mas é claro que você pode usá-lo onde quiser (ou seja, concatenar com o nome do segundo lote e chamada).
%0 é o parâmetro 0
~ é modificador 'escape' (também remove aspas)
d é letra de unidade
p é caminho.
Você também pode usar outros modificadores, veja aqui: http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/pt-br/percent.mspx?mfr=true

wmz
fonte
Então use echo "% ~ dp0" \ Bach2 ao invés de algo como c: \… \… \… \ hi \ Bach2?
Gizmobart
1
use "% ~ dp0 \ Bach2" (ou "% ~ dp0Bach2" como caminho expandido inclui \) ao invés de c: \… \ ... \ ... \ hi \ Bach2. Citações estão lá no caso de haver espaços no caminho
wmz