Je pense que je manque quelque chose parce que je n'arrive pas à trouver ce que cela signifie.
Exemple:
for /D %%A in (*) do "\7za.exe" u -t7z -m9=LZMA2 "%%A.7z" "%%A"
Cette ligne était censée utiliser une version en ligne de commande de 7zip
pour compresser des dossiers individuels, mais je suis perplexe quant à ce que %%A
signifie dans ce contexte.
command-line
batch
batch-file
7-zip
Jim Kieger
la source
la source
Réponses:
La
for
commande a besoin d'un espace réservé pour que vous puissiez transmettre des variables pour une utilisation ultérieure dans la requête, nous lui disons d'utiliser l'espace réservé%A
, la raison pour laquelle le code que vous avez vu%%A
est dû au fait que dans un fichier de commandes (qui, je suppose, est l'endroit où vous l'avez trouvé), le%
a une signification particulière, vous devez donc le faire deux fois%%
pour qu'il soit transformé en un seul%
pour être passé à lafor
commandePour séparer réellement ce que fait la commande, la commande comporte deux parties:
Ce que cette partie dit est que pour chaque dossier du dossier en cours, exécutez la commande suivante en remplaçant
%%A
par le nom du dossier en cours de traitement.Ce que cette partie dit est d'exécuter la commande
"\7za.exe" u -t7z -m9=LZMA2 "%%A.7z" "%%A"
et de remplacer les deux%%A
par l'enregistrement actuel que nous traitons.la source
C'est une variable.
Cet exemple particulier utilise l' option de répertoire d'une boucle FOR , parcourant les répertoires et les affectant à %% A.
Ce n'est pas non plus un exemple de ligne de commande, mais un exemple de fichier de commandes. Dans les fichiers batch, vous devez utiliser %% A, tandis que sur la ligne de commande, vous utiliserez simplement% A.
la source
Dans votre scénario, le %% A est un espace réservé pour ce que la boucle "for" itère (sur lequel / D indique les répertoires). Ainsi, à chaque itération de la boucle, %% A est l'un des répertoires.
Vous verrez %% au lieu de% dans le code de lot. Vous verrez% au lieu de %% utilisé dans votre invite de commande.
Sachez donc que si vous copiez un code de fichier de commandes dans une invite de commande et l'exécutez avec %% en cours d'utilisation, cela provoquera une erreur et vice versa.
la source