[Résolu] Batch pour renommer des fichiers PDF

Posez ici toutes les questions concernant un ou plusieurs logiciels, payants ou gratuits. Pour les demandes spécifiques aux systèmes d'exploitation, passez plutôt par les sections dédiées.

Modérateur: Modérateurs

[Résolu] Batch pour renommer des fichiers PDF

Messagepar Tosem » 27 Nov 2015 15:20

Bonjour à tous,

J'aurais besoin de qqun qui connaît bien le scripting pour faire un batch.

J'ai un dossier avec plusieurs fichiers PDF.
Dans le nom du fichier PDF, il y a plusieurs sections séparées par des traits de soulignement.
J'aimerais pour chaque fichier déplacer l'avant-dernière séquence pour la mettre en 1ère position
Je vous ai mis en pièce jointe quelques fichiers exemples.
Pour le fichier avec le nom "BUCHE", la séquence "1234" devrait se trouver en 1ère position par ex.

Merci beaucoup à la bonne âme qui se penchera sur mon problème ! :)
Dernière édition par Tosem le 03 Déc 2015 14:11, édité 1 fois.
"Si ce que tu as à dire est moins beau que le silence, alors tais-toi !"
Avatar de l’utilisateur
Tosem
Libellulien Junior
Libellulien Junior
 
Messages: 374
Inscription: 29 Sep 2006 12:57
Localisation: Gruyère Land

Re: Batch pour renommer des fichiers PDF

Messagepar diavolezza » 27 Nov 2015 16:35

hello
où sont les exemples de noms ?
Avatar de l’utilisateur
diavolezza
Super Libellulien
Super Libellulien
 
Messages: 1341
Inscription: 15 Sep 2005 13:49
Localisation: virtuelle

Re: Batch pour renommer des fichiers PDF

Messagepar atao » 27 Nov 2015 17:00

Bonjour,
Le logiciel Ant Renamer permet de générer un batch, (format propre à AntRenamer) que tu peux exécuter en ligne de commande avec antrenamer. :learn:

Bref, il y a tout là, et en plus c'est du logiciel libre!

Paramètres en ligne de commande
Le programme ne supporte pas (encore) beaucoup de paramètres. Il n'est pas vraiment possible de renommer des fichiers en spécifiant tous les paramètres depuis la ligne de commande, mais ils peuvent être fournis à l'aide d'un job sauvegardé.

Voici la liste des paramètres supportés :

-b FileName.arb : Charge le fichier batch nommé FileName.arb
-g : Démarre le traitement après que les fichiers aient été ajoutés et que le fichier batch ait été chargé
-x : Quitte le programme après le traitement
-a : Change le mode d'ajout de fichiers, sur base des lettres suivant le paramètre "-a" :
f : Ajouter les fichiers dont les noms/dossiers qui suivent
F : Ajouter les dossiers dont les noms suivent, ou contenu dans les dossiers, cf. exemples
r : Ajout récursif du contenu des dossiers
Les noms de fichiers et chemins peuvent être relatifs ou absolus, et peuvent contenir des jokers (* et ?).

Voici quelques exemples :

Renamer.exe -b d:\test.arb -af c:\data\*.* -g -x
Ceci chargera le fichier de job spécifié, et ajoutera tous les fichiers contenus dans le dossier c:\data, démarrera le traitement puis fermera le programme
Renamer.exe -af c:\data
Ceci ajoutera le fichier appelé c:\data
Renamer.exe -afr c:\data
Ceci ajoutera le fichier appelé c:\data. S'il s'agit d'un dossier, il ajoutera les fichiers qu'il contient (recherche récursive)
Renamer.exe -aF c:\data
Ceci ajoutera le dossier "data"
Renamer.exe -aF c:\data\*.*
Ceci ajoutera les dossiers contenus dans le dossier "data", mais pas les fichiers
Renamer.exe -af c:\data\*.* c:\images\*.jpg c:\test.txt -afr c:\mp3\*.*
Vous pouvez combiner plusieurs chemins/noms, utiliser des masques, et utiliser différents paramètres "-a" dans une ligne de commande
Si un nom est donné sans paramètre "-a", il sera analysé comme dans Ant Renamer 2.07 (et précédents) : si le fichier se termine par ".arb", il est chargé comme un fichier de job ; si un dossier est donné, son contenu est ajouté récursivement (fichiers uniquement, ne supporte pas les jokers, requiert un nom complet).

Il est possible d'ajouter Ant Renamer dans la liste "Envoyer vers" (dans le menu qui apparaît lorsque vous cliquez avec le bouton droit sur un dossier dans l'Explorateur Windows). Ceci ajoute donc la possibilité d'envoyer un dossier à Ant Renamer depuis son menu contextuel, pour charger son contenu dans la liste de fichiers. Pour faire cela, allez dans "Démarrer" -> "Exécuter" et tapez sendto. Une fenêtre de dossier devrait s'ouvrir ; placez là un raccourci vers Ant Renamer.


Source : L'aide du logiciel
Dernière édition par atao le 27 Nov 2015 17:02, édité 1 fois.
atao
 

Re: Batch pour renommer des fichiers PDF

Messagepar Tosem » 27 Nov 2015 17:01

Oups pardon
Les voilà :
1_144781677320151006102240617__20151006102020_2-151005-1683M_20151005_DUPONT_19390815_12345_16773
1_144781677320151006112240632_3801198_20151006112017_2-151003-6263M_20151002_BUCHE_19490605_1234_16773
1_144781677320151006122740711__20151006122316_2-150930-3236RDSC1_20150929_CHOLLET_19651031_123_16773
1_144781677320151006123740887_3801198_20151006123521_2-151003-6263M_20151002_DUPOND_19490605_12_16773
"Si ce que tu as à dire est moins beau que le silence, alors tais-toi !"
Avatar de l’utilisateur
Tosem
Libellulien Junior
Libellulien Junior
 
Messages: 374
Inscription: 29 Sep 2006 12:57
Localisation: Gruyère Land

Re: Batch pour renommer des fichiers PDF

Messagepar Falkra » 28 Nov 2015 08:42

Yep, +1 pour ant renamer, excellent.
Avatar de l’utilisateur
Falkra
Admin libellules.ch
Admin libellules.ch
 
Messages: 24424
Inscription: 30 Jan 2005 13:44
Localisation: 127.0.0.1

Re: Batch pour renommer des fichiers PDF

Messagepar diavolezza » 28 Nov 2015 10:32

essayer ca:
Code: Tout sélectionner
@echo off
for %%z in (1*) do (
   for /f "delims=_ tokens=1-10" %%a in ('echo %%z') do (
      echo rename %%z %%i_%%a_%%b_%%c_%%d_%%e_%%f_%%g_%%h_%%j
      echo.
   )
)

enlever le echo devant le rename pour effectuer l'opération

edit: problème, les noms n'ont pas tous le même nombre de champs, ca ne marche pas pour certains
ceci corrige le problème
Code: Tout sélectionner
@echo off
setlocal ENABLEDELAYEDEXPANSION
for %%z in (1*) do (
   set n=%%z
   set n=!n:__=_xxx_!
   for /f "delims=_ tokens=1-10" %%a in ('echo !n!') do (
      set n2=%%i_%%a_%%b_%%c_%%d_%%e_%%f_%%g_%%h_%%j
      set n2=!n2:_xxx_=__!
      echo rename %%z !n2!
      echo.
   )
)
Avatar de l’utilisateur
diavolezza
Super Libellulien
Super Libellulien
 
Messages: 1341
Inscription: 15 Sep 2005 13:49
Localisation: virtuelle

Re: Batch pour renommer des fichiers PDF

Messagepar DJesus » 28 Nov 2015 22:31

Hello !

Comme je ne savais pas quoi faire des derniers jours, voici une version plus complète et dynamique de ce script. :whaou: :idea:
Il est un tout petit peu plus compliqué que le code proposé ci-dessus, mais il permet plus de souplesse, sans avoir à mettre les mains dans le code. :learn:

ChangeFiles.ZIP

Extraire le fichier ZIP et mettre le fichier "ChangeFile.cmd" dans le répertoire des PDF.
Lancer "ChangeFile.cmd /?" pour voir quelques détails sur les paramètres et l'utilisation du script.
Par défaut il doit gérer ton problème (Block 9 à mettre en première place).

Le script permet un mode "DryRun" pour tester sans modifier les fichiers (par défaut, pour éviter les bêtises :plaf: ); ajouter "-a" pour appliquer les changements.
On peut définir le filtre de selection des fichiers "-f", choisir de Copier or Renommer les fichiers "-t", on peut modifier dynamiquement l'ordre des échanges "-s", voir ne pas tout mettre dans le fichier cible...
Une demande de confirmation avant l’exécution ou pas "-b" (Manuel ou Batch), et plein d'autres petits trucs..
On peut en outre contrôler le niveau de détails de l'affichage via le Debug Level "-d".
Et pour finir il supportera facilement un changement de nombres de blocs ou de leurs positions pour le futur. On peut ainsi aisément modifier le code pour avoir des valeurs par défaut "SwapOrder" et "Filter" (en début du script, une section dédiée pour cela).

Désolé, mais il est en Anglais, mais cela ne doit pas être un gros soucis pour comprendre son fonctionnement et son utilisation... :?
Si vraiment, je peux toujours en faire une version française, si la demande se justifie... :roll:

Code: Tout sélectionner
   ----------------
   - Change Files -
   ----------------

Params: [-f x_*.pdf -s 04_01_02_03_05_* -h]
TASK:   [REN]
FILTER: [x_*.pdf]
SWAP:   [04_01_02_03_05_*]

Syntax: ChangeFiles.cmd [-?|-h] [-a] [-f <filter>] [-t <task>] [-s <order>] [-b] [-d <level>]

  -?|-h        Display this help page.
  -a           Apply Mode - /!\ Write changes to files ! /!\
  -f <filter>  Set Scan filter [1_*.pdf]
  -t <task>    Task Mode - Set which task Copy or Rename to apply on selected files [COPY] or [REN].
  -s <order>   Set Swap Order [09_01_02_03_04_05_06_07_08_10_*]
  -b           Batch Mode - Do not ask execution validation; no user intervention.
  -d <level>   Debug Level - Display execution details based on Debug level [0-4].


Examples:
- ChangeFile.cmd -d 2 -b -f 1_*.pdf -t copy
- ChangeFile.cmd -bs -f x_*.pdf -s 04_01_02_03_05_* -d 1
- ChangeFile.cmd -d 1 -b -f 1_*.pdf -a
DJesus
Avatar de l’utilisateur
DJesus
 
Messages: 29
Inscription: 23 Juil 2013 20:41
Localisation: Geneva, Suisse

Re: Batch pour renommer des fichiers PDF

Messagepar Tosem » 03 Déc 2015 14:10

UN GRAND MERCI A TOUS ! :-D
Ca fonctionne à merveille ! :supers:

J'ai gagné des heures, des jours de recherche intensive pour arriver à ce résultat.

Merci encore à la communauté libelluliennne qui est très efficace !
Longue vie à elle ! :king:


A plus !
"Si ce que tu as à dire est moins beau que le silence, alors tais-toi !"
Avatar de l’utilisateur
Tosem
Libellulien Junior
Libellulien Junior
 
Messages: 374
Inscription: 29 Sep 2006 12:57
Localisation: Gruyère Land


Retourner vers Software - Logiciels

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité
cron