Windows renommer les fichiers récursif


0

Je suis un peu coincé ici, j'ai créé un fichier facile à compresser les dossiers avec un nom spécial. Donc, disons que nous recherchons des dossiers avec le nom "tozip", mais le nom du fichier compressé doit être le nom du sous-dossier + le nom du dossier. par exemple. tous les fichiers de C: / test / somefolder / 123456 / tozip / * doivent être ajoutés au fichier "123456_tozip.7z"

ce que j'ai actuellement c'est:

for /R /d /r %%i in (tozip*) do (
 7za a -tzip "%%i.7z" "%%i" -mx3
)

mais cela n'ajoute pas le nom du dossier n-1 au nom du fichier. J'ai vu, que je peux extraire par exemple le nom de fichier par %% ~ nxi ou le chemin complet, mais malheureusement pas les informations dont j'ai besoin. Des idées à ce sujet?


Où est le zip ( .7z ) file: dans `tozip`, ou plus haut dans l’arborescence?
AFH

Juste une question secondaire: -tzip signifie que vous utilisez les méthodes de compression zip et non 7z. Mais vos archives auront le .7z extension. Est-ce prévu?
nixda

Étrange qu'il ne jette pas une erreur avec les deux commutateurs / R.
Squashman

@AFH un arbre de répertoire supérieur
Markus

@nixda merci, ce n'est pas si important, mais merci de le mentionner!
Markus

Réponses:


1

Vous étiez si proche et vous avez même la bonne idée mais vous devez aller plus loin. Une fois que vous avez trouvé le tozip répertoire, vous pouvez ensuite mettre ce chemin dans un autre FOR commande pour obtenir le dossier parent du tozip dossier.

Voici le code basé sur votre exemple.

@echo off
for /D /R C:\test\ %%G in (tozip*) do (
    FOR %%H IN ("%%G\..") DO echo %%~nxH 
)
pause

ouch, ça fait mal ... Je ne savais pas que c'était aussi simple que ça, merci de votre aide!
Markus

J'essayais de savoir comment analyser le dernier élément du chemin du répertoire: ajouter \.. est une solution beaucoup plus soignée!
AFH
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.