1 votes

Comment extraire toutes les archives des sous-répertoires de ce dossier ?

J'ai fait des recherches sur ce titre et la réponse donnée est le fichier CMD suivant :

FOR /D /r %%F in ("*") DO (
    pushd %CD%
    cd %%F
           FOR %%X in (*.rar *.zip) DO (
        "C:\Program Files\7-zip\7z.exe" x %%X
           )
    popd
)

Le fichier cmd fonctionne très bien jusqu'à un certain point. Sauf qu'il donne le message suivant pour chaque fichier trouvé avec l'extension "ZIP" et demande :

Would you like to replace the existing file:
Path xxxxxx
Size xxxx
Modified: XXXXXXX
with the file from the archive:
Path: xxxx
Size: xxxxx
? Y<es> \ N<o> \ A<lways> \ S<kip all> \A<u>to rename all \ <Q>uit 

Il s'arrête là, attendant une entrée. Mais il demande à chaque fois qu'un fichier est décompressé. J'allais modifier le fichier de commande ci-dessus avec quelque chose qui vérifie si ? est trouvé et appelle ensuite un fichier cmd de réponse qui affiche un "Y" puis quitte, ce qui me ramènerait au fichier de commande original pour traiter le fichier suivant avec le "zip" qu'il a trouvé.

Je ne sais pas si je suis sur la bonne voie, mais j'apprécierais une aide. Je ne sais pas quel est le programme qui émet le ? et le texte. S'agit-il de Windows 7 ou de c'est 7-zip qui demande ?

1voto

Ben N Points 38070

C'est 7-zip qui produit l'invite. Il ressemble à l'invite -y interrupteur para 7z.exe fait ce que vous voulez :

Toutes les requêtes d'écrasement seront supprimées et les fichiers sur le disque dont le nom est identique à celui de l'archive seront écrasés.

L'exemple de la documentation indique qu'il faut placer -y après le chemin donné à 7z.exe .

1voto

DavidPostill Points 140654

Je ne sais pas quel programme produit les " ?" et le texte

Il est 7z.exe .

L'interrupteur à utiliser est le suivant -aoa (Ecraser tous les fichiers existants sans invite).

Ejemplo:

"C:\Program Files\7-zip\7z.exe" x %%X -aoa

-ao (mode d'écrasement)

Spécifie le mode d'écrasement lors de l'extraction, pour écraser les fichiers déjà présents sur le disque.

Syntax

-ao[a | s | t | u ]

Switch    Description
-aoa  Overwrite All existing files without prompt.
-aos  Skip extracting of existing files.
-aou  aUto rename extracting file (for example, name.txt will be renamed to name_1.txt).
-aot  auto rename existing file (for example, name.txt will be renamed to name_1.txt).

Source -ao (mode d'écrasement)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X