web-dev-qa-db-fra.com

%% A était inattendu à ce moment

Je veux compresser un dossier contenant des fichiers. Donc, afin de faire cela, je dois parcourir toute la liste de fichiers et exécuter la commande 7za. (Version en ligne de commande 7Zip)

for /f %%A in ('"G:\Files Sample\Zip\txt\*.t
xt"') do 7za -tzip "%%A.Zip" "%%A"

Cependant Windows dit que cette commande n'est pas valide. 

Le message d'erreur est 

%%A was unexpected at this time

Comment puis-je surmonter ce problème?

39
klijo

%%A est utilisé lorsque vous utilisez un programme de traitement par lots (* .bat)

essayez de supprimer un '%'

73
Royi Namir

Si vous le faites depuis la ligne de commande, vous n'avez pas besoin d'échapper au%, donc %a est suffisant. Vous devez uniquement utiliser %%a à partir de fichiers de commandes.

Vous souhaitez également sélectionner les fichiers au lieu d'exécuter "G:\Exemples de fichiers\Zip\txt\*. Txt" en tant que commande, ce que le commutateur /f fait en combinaison avec des guillemets simples. La commande complète serait: for %A in ("G:\Files Sample\Zip\txt\*.txt") do 7za -tzip "%A.Zip" "%A"

3
aross

Essayez ceci dans un fichier batch.

FOR "G:\Files Sample\Zip\txt\" %%G IN (*.txt) DO  7za -tzip "%%G.Zip" "%%G"

Ajoutez /R comme option pour rechercher les fichiers dans tous les sous-dossiers.

Une bonne explication des méthodes cmd- que vous pourriez trouver sur ss64

0
Andreas Rohde