Acho que estou perdendo alguma coisa porque não consigo encontrar o que isso significa.
Exemplo:
for /D %%A in (*) do "\7za.exe" u -t7z -m9=LZMA2 "%%A.7z" "%%A"
Essa linha deveria usar uma versão da linha de comando 7zip
para compactar pastas individuais, mas estou perplexo quanto ao que %%A
significa neste contexto.
command-line
batch
batch-file
7-zip
Jim Kieger
fonte
fonte
Respostas:
O
for
comando precisa de um espaço reservado para que você possa passar variáveis para uso posteriormente na consulta, estamos dizendo a ele para usar o espaço reservado%A
, a razão pela qual o código que você viu usa%%A
é porque dentro de um arquivo em lotes (que eu suponho que é onde você encontrou isso).%
tem um significado especial, então você deve fazê-lo duas vezes%%
para que seja convertido em um único%
a ser passado aofor
comandoPara realmente separar o que o comando está fazendo, há duas partes no comando:
O que esta parte diz é que para cada pasta na pasta atual, execute o seguinte comando substituindo
%%A
pelo nome da pasta em processamento no momento.O que esta parte diz é executar o comando
"\7za.exe" u -t7z -m9=LZMA2 "%%A.7z" "%%A"
e substituir os dois%%A
pelo registro atual que estamos processando.fonte
É uma variável.
Esse exemplo específico usa a opção de diretório de um loop FOR , repetindo os diretórios e atribuindo-os a %% A.
Também não é um exemplo de linha de comando, mas um exemplo de arquivo em lote. Nos arquivos em lote, você precisa usar %% A, enquanto na linha de comando, você apenas usa% A.
fonte
No seu cenário, o %% A é um espaço reservado para o que o loop "for" está repetindo (o qual / D indica diretórios). Portanto, cada iteração do loop, %% A é um dos diretórios.
Você verá %% em vez de% no código do lote. Você verá% em vez de %% usado no prompt de comando.
Portanto, saiba que se você copiar um código de arquivo em lotes para um prompt de comando e executá-lo com o %% sendo usado, ocorrerá um erro e vice-versa.
fonte