Batch copie multiple et renommage

Résolu/Fermé
dhaze Messages postés 109 Date d'inscription mardi 27 septembre 2011 Statut Membre Dernière intervention 6 février 2020 - 9 juil. 2015 à 19:18
dhaze Messages postés 109 Date d'inscription mardi 27 septembre 2011 Statut Membre Dernière intervention 6 février 2020 - 10 juil. 2015 à 17:35
Bonjour,

J'utilise un batch pour faire des photos (recto/verso).
Ce batch lance un fichier HTA avec des commande VB/WIA.

La photo prise est nommée à partir d'une variable et copiée dans un répertoire qui a le même nom.

Touts les répertoires existent déjà, et je n'ai pas la main sur les variables %2 et %3 qui sont définis en amont par le système.

Exemple:

Commande

photo.hta "%3%2\%2_R.tiff"
photo.hta "%3%2\%2_V.tiff"

Résultat

D:\PHOTO\PHOTO_000003_V1_1\PHOTO_000003_V1_1_R.tiff
D:\PHOTO\PHOTO_000003_V1_1\PHOTO_000003_V1_1_V.tiff


Mon problème:

Il se trouve que j'ai des volumaisons ou les photos doivent être identiques.

PHOTO_000001_V1_5
PHOTO_000001_V2_5
PHOTO_000001_V3_5
PHOTO_000001_V4_5
PHOTO_000001_V5_5
PHOTO_000002_V1_1
PHOTO_000003_V1_2
PHOTO_000003_V2_2
Etc...

Pour éviter de reprendre les photos pour chaque volume
Je voudrais en fin de batch pour le volume 1/X, avoir le choix de recopier ces photos dans les X répertoires du même volume.

Mais je ne peux pas identifier le nombre de volume qui est variable, il me faut donc tronquer le nom pour extraire la volumaison et de là copier et renommer les
photos pour les "ventiler" dans les répertoires ad hoc

Je me disais qu'en extrayant ces trois variables
(Je ne peux que tromquer par la droite, le nom de la racine peut être différant de "PHOTO_", qui est un exemple)

RACINE=%2:~0,-3%
VOL_N=%2:~-3,1%
VOL_TT=%2:~-1%

(Autre problème avec cette méthode, la troncature fonctionne avec %ma_var, par exemple, mais pas avec %2)

On pouvait renommer les fichiers et les copier dans leurs répertoires, N fois en utilisant VOLL_TT dans une boucle

Mais je ne sais pas comment m'y prendre...

Et que faire quand la volumaison passe à deux décimales ?

Lo.
A voir également:

2 réponses

dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
10 juil. 2015 à 10:55
hello
pour tronquer %2, ceci fonctionne
set x=%2
RACINE=%x:~0,-3%
0
dhaze Messages postés 109 Date d'inscription mardi 27 septembre 2011 Statut Membre Dernière intervention 6 février 2020
10 juil. 2015 à 17:35
Bonjour,

Merci.

Je viens de faire un test en local avec un batch simple :
set x=PHOTO_000001_V1_5
FOR /L %%i IN (2,1,%x:~-1%) DO copy %x%\%x%_R.tiff %x:~0,-3%%%i_%x:~-1%\%x:~0,-3%%%i_%x:~-1%_R.tiff /Y
pause

Ca marche !

Lo.
0