Creo que me estoy perdiendo algo porque parece que no puedo encontrar lo que esto significa.
Ejemplo:
for /D %%A in (*) do "\7za.exe" u -t7z -m9=LZMA2 "%%A.7z" "%%A"
Se suponía que esa línea debía usar una versión de línea de comandos 7zip
para comprimir carpetas individuales, pero no sé qué %%A
significa en este contexto.
command-line
batch
batch-file
7-zip
Jim Kieger
fuente
fuente
Respuestas:
El
for
comando necesita un marcador de posición para que pueda pasar variables para su uso más adelante en la consulta, le decimos que use el marcador de posición%A
, la razón por la que el código que vio%%A
se debe a que dentro de un archivo por lotes (que supongo es donde encontró esto) el%
tiene un significado especial, por lo que debe hacerlo dos veces%%
para que se convierta en un solo%
para pasar alfor
comandoPara separar realmente lo que está haciendo el comando, el comando tiene dos partes:
Lo que dice esta parte es que para cada carpeta en la carpeta actual ejecute el siguiente comando reemplazando
%%A
con el nombre de la carpeta que se está procesando actualmente.Lo que dice esta parte es ejecutar el comando
"\7za.exe" u -t7z -m9=LZMA2 "%%A.7z" "%%A"
y reemplazar los dos%%A
con el registro actual que estamos procesando.fuente
Es una variable.
Ese ejemplo particular usa la opción de directorio de un bucle FOR , iterando a través de los directorios y asignándolos a %% A.
Tampoco es un ejemplo de línea de comandos, sino un ejemplo de archivo por lotes. En los archivos por lotes, debe usar %% A, mientras que en la línea de comandos, simplemente usaría% A.
fuente
En su escenario, el %% A es un marcador de posición para lo que el ciclo "for" está iterando (que / D indica directorios). Entonces, cada iteración del ciclo, %% A es uno de los directorios.
Verá %% en lugar de% en el código de lote. Verá% en lugar de %% usado en su símbolo del sistema.
Entonces, sepa que si copia un código de archivo por lotes en un símbolo del sistema y lo ejecuta con %% en uso, se producirá un error, y viceversa.
fuente