Je pense que je manque de quelque chose parce que je ne peux pas trouver ce que cela signifie.
Exemple: pour / D %% A in (*) do "\ 7za.exe" u -t7z -m9 = LZMA2 "%% A.7z" "%% A"
Cette ligne était censée utiliser une version de ligne de commande de 7zip pour compresser des dossiers individuels, mais je suis perplexe quant à ce que %% A signifie dans ce contexte.
La commande for
nécessite un espace réservé afin que vous puissiez transmettre les variables à utiliser plus tard dans la requête, nous vous demandons d'utiliser l'espace réservé %A
, la raison pour laquelle le code que vous avez utilisé utilise %%A
est que dans un fichier batch (ce que je suppose est Où vous avez trouvé cela), le %
a une signification particulière, donc vous devez le faire deux fois %%
afin qu'il soit transformé en un seul %
à passer à la commande for
Pour répartir réellement ce que fait la commande, il y a deux parties à la commande:
for /D %%A in (*) do .....
Ce que cette partie dit est pour chaque dossier dans le dossier en cours, exécutez la commande suivante en remplaçant %%A
par le nom du dossier de traitement en cours.
..... "\7za.exe" u -t7z -m9=LZMA2 "%%A.7z" "%%A"
Ce que cette partie dit, c'est exécuter la commande "\7za.exe" u -t7z -m9=LZMA2 "%%A.7z" "%%A"
et remplacer les deux %%A
's par l'enregistrement actuel que nous traitons.
C'est une variable.
Cet exemple particulier utilise l' option de répertoire d'une boucle FOR , itérant dans les répertoires et les affecte à %% A.
Ce n'est pas non plus un exemple de ligne de commande, mais un exemple de fichier par lots. Dans les fichiers par lots, vous devez utiliser %% A, alors que sur la ligne de commande, vous devriez utiliser% A.
Dans votre scénario, le %% A est un espace réservé pour ce que la boucle "for" iterating over (que le / 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.
Donc, sachez que si vous copiez sur un code de fichier batch dans une invite de commande et exécutez-le avec %% étant utilisé, cela va se produire, et vice versa.