Uma análise mais detalhada dos feitiços (%~dp0) que aparecem em arquivos bat.

この記事は約4分で読めます。
スポンサーリンク

Coisas que eu quero fazer

Vamos analisar mais de perto o comando %~dp0, que aparece frequentemente ao escrever arquivos em lote do Windows.

O que exatamente é %~dp0?

Se você incluir %~dp0 em um arquivo em lote, ele será substituído pela pasta onde o arquivo em lote foi salvo.

O texto a seguir costuma ser encontrado no início de um arquivo .bat.

cd /d %~dp0

Isso serve para fixar a pasta atual na pasta onde o arquivo em lote está localizado, independentemente de onde o arquivo em lote for executado. (Se o arquivo em lote contiver caminhos relativos, a pasta atual afetará sua operação.)

Aliás, a opção /d altera a unidade atual ao mesmo tempo.

スポンサーリンク

A origem de %~dp0

%~dp0 é %0 com as opções ~ , d e p adicionadas.

Vamos exibir os valores usando F:\bat\test.bat. (@echo off foi omitido)

Este é o resultado obtido ao executar o comando a partir do Explorador de Arquivos.

%0

%0 armazena o caminho do arquivo em lote executado, entre aspas duplas. (Observe que ele contém um caminho relativo quando executado a partir do prompt de comando e um caminho absoluto quando executado a partir do Explorador de Arquivos.)

F:\bat\test.bat:

echo %0

saída:

"F:\bat\test.bat"

Aliás, %1 conterá o valor do primeiro argumento.

F:\bat\test.bat:

echo %0
echo %1

comando:

test.bat arg1

saída:

"F:\bat\test.bat"
arg1

~

Inserir um ~ entre o % e o 0 em %0 removerá o .

F:\bat\test.bat:

echo %~0

saída:

F:\bat\test.bat

d

Ao inserir d entre o ~ e o 0 em %~0, será exibida a unidade onde o arquivo .bat está salvo. Observe que %d0 não funcionará.

F:\bat\test.bat:

echo %~d0

saída:

F:

p

Ao inserir p entre o ~ e o 0 em %~0, a pasta onde o arquivo em lote está salvo será exibida. Observe que %p0 não funcionará.

F:\bat\test.bat:

echo %~p0

saída:

\bat\

%~dp0

%~dp0 é a combinação mostrada acima.

Isso exibirá a unidade conectada e a pasta onde o arquivo em lote está salvo.

Portanto, o caminho absoluto da pasta onde o arquivo .bat está salvo é retornado.

F:\bat\test.bat:

echo %~dp0

saída:

F:\bat\

コメント

タイトルとURLをコピーしました