28/03/2013 @ 10:28:57: Georgio: "Synchro" entre fichiers d'extensions différentes
Bonjour à tous
Bon le titre est un peu confus, mais je ne trouvais pas comment exprimer mon problème différemment.
Je vous explique donc en vitesse :
J'ai dans un répertoire 3200 fichiers RAW(enfin .nef).
Dans un deuxieme dossier j'ai les mêmes photos mais en jpeg (qui résulte en fait de la conversion des RAW du premier dossier sans retouches). Dans ce deuxième dossier j'ai effectué un tri et il ne me reste "que" 1000 photos.
Le gros du problème est de "synchroniser" les dossiers afin qu'il ne me reste dans le dossier 1 que les RAW des photos qui se trouvent en jpeg dans le 2eme dossier (et une fois de plus je trouve pas une autre manière d'éclaircir cette phrase) afin de pouvoir traiter les RAW.
Au passage, l'OS est windows 8
En espérant que quelqu'un puisse m'aider
(J'suis sûr qu'en le faisant à la main j'vais me planter ^^ )
28/03/2013 @ 10:39:05: Jean-Christophe: "Synchro" entre fichiers d'extensions différentes
Donc, si je comprends bien, tu as deux répertoires.
Le premier contient 3200 fichier NEF.
Le second contient 1000 fichier JPEG.
Les 1000 fichiers JPEG ont le même nom que 1000 des 3200 fichiers NEF (à l'extension près).
Tu voudrais virer les 2200 fichier NEF qui n'ont pas d'équivalent JPEG.
C'est ça?
28/03/2013 @ 10:55:52: Georgio: "Synchro" entre fichiers d'extensions différentes
Exactement JC
28/03/2013 @ 11:50:50: Jean-Christophe: "Synchro" entre fichiers d'extensions différentes
Voici un batch qui fait ce que tu veux.
@echo off
cls
rem --------- VOIR CI DESSOUS -----------
rem change "c:\temp\F1\" par le repertoire qui contient les fichier NEF
mkdir c:\temp\F1\Orphans\
FOR /R C:\temp\F1\ %G IN (*.nef) DO (call :subroutine "%G")
GOTO :eof
:subroutine
set NEFFile=%1
Set JPEGFile=%NEFFile:nef=jpeg%
rem --------- VOIR CI DESSOUS -----------
rem change "\temp\F1" par le repertoire qui contient les fichier NEF (sans le drive:)
rem change "\temp\F2" par le repertoire qui contient les fichier JPEG (sans le drive:)
Set JPEGFile=%JPEGFile:\temp\F1=\temp\F2%
IF NOT EXIST (
rem --------- VOIR CI DESSOUS -----------
rem change "c:\temp\F1\" par le repertoire qui contient les fichier NEF
move c:\temp\F1\Orphans\
)
GOTO :eof
Si ce n'est pas assez clair, n'hésite pas à le dire.
Il n'y a aucun effacement de fichier. Je ne fais que les déplacer dans un répertoire "Orphans".
28/03/2013 @ 12:48:41: Georgio: "Synchro" entre fichiers d'extensions différentes
Ma réponse n'est pas passée
Je recommence donc
Je vais tester ca tout de suite et je te tiens au courant si j'ai un problème
Mais déjà un tout grand merci
28/03/2013 @ 13:08:07: Georgio: "Synchro" entre fichiers d'extensions différentes
Bon j'ai un problème (oui je suis un noob ^^ )
J'ai modifié les répertoires dans le batch. Ensuite je l'ai enregistré en .bat
Je l'ai lancé en ligne de commande et j'obtiens uniquement "subroutine était inattendu"
Voici ce que j'ai dans le bat :
@echo off
cls
rem --------- VOIR CI DESSOUS -----------
rem change "c:\temp\F1\" par le repertoire qui contient les fichier NEF
mkdir c:\photo\thairaw\Orphans\
FOR /R C:\photo\thairaw\ %G IN (*.nef) DO (call :subroutine "%G")
GOTO :eof
:subroutine
set NEFFile=%1
Set JPEGFile=%NEFFile:nef=jpeg%
rem --------- VOIR CI DESSOUS -----------
rem change "\temp\F1" par le repertoire qui contient les fichier NEF (sans le drive:)
rem change "\temp\F2" par le repertoire qui contient les fichier JPEG (sans le drive:)
Set JPEGFile=%JPEGFile:\photo\thairaw=\photo\thaijpg%
IF NOT EXIST (
rem --------- VOIR CI DESSOUS -----------
rem change "c:\temp\F1\" par le repertoire qui contient les fichier NEF
move c:\photo\thairaw\Orphans\
)
GOTO :eof
28/03/2013 @ 13:29:00: Jean-Christophe: "Synchro" entre fichiers d'extensions différentes
Damned! Les doubles % sont devenus des simples % dans le forum.
@echo off
cls
rem --------- VOIR CI DESSOUS -----------
rem change "c:\temp\F1\" par le repertoire qui contient les fichier NEF
mkdir c:\temp\F1\Orphans\
FOR /R C:\temp\F1\ %G IN (*.nef) DO (call :subroutine "%G")
GOTO :eof
:subroutine
set NEFFile=%1
Set JPEGFile=%NEFFile:nef=jpeg%
rem --------- VOIR CI DESSOUS -----------
rem change "\temp\F1" par le repertoire qui contient les fichier NEF (sans le drive:)
rem change "\temp\F2" par le repertoire qui contient les fichier JPEG (sans le drive:)
Set JPEGFile=%JPEGFile:\temp\F1=\temp\F2%
IF NOT EXIST (
rem --------- VOIR CI DESSOUS -----------
rem change "c:\temp\F1\" par le repertoire qui contient les fichier NEF
move c:\temp\F1\Orphans\
)
GOTO :eof
28/03/2013 @ 13:30:10: Jean-Christophe: "Synchro" entre fichiers d'extensions différentes
Bordel... Toujours pas de double %
28/03/2013 @ 13:32:54: Jean-Christophe: "Synchro" entre fichiers d'extensions différentes
J'ai du mettre un blanc entre les doubles %. Il faut virer le blanc aux deux endroits où il y a "% %"
@echo off
cls
rem --------- VOIR CI DESSOUS -----------
rem change "c:\temp\F1\" par le repertoire qui contient les fichier NEF
mkdir c:\temp\F1\Orphans\
FOR /R C:\temp\F1\ % %G IN (*.nef) DO (call :subroutine "% %G")
GOTO :eof
:subroutine
set NEFFile=%1
Set JPEGFile=%NEFFile:nef=jpeg%
rem --------- VOIR CI DESSOUS -----------
rem change "\temp\F1" par le repertoire qui contient les fichier NEF (sans le drive:)
rem change "\temp\F2" par le repertoire qui contient les fichier JPEG (sans le drive:)
Set JPEGFile=%JPEGFile:\temp\F1=\temp\F2%
IF NOT EXIST (
rem --------- VOIR CI DESSOUS -----------
rem change "c:\temp\F1\" par le repertoire qui contient les fichier NEF
move c:\temp\F1\Orphans\
)
GOTO :eof
28/03/2013 @ 13:34:39: Jean-Christophe: "Synchro" entre fichiers d'extensions différentes
Pour faire court. Dans le ligne qui commence par FOR, il faut que le signe % qui précède la lettre G soit double. C'est tout.
28/03/2013 @ 13:37:59: Georgio: "Synchro" entre fichiers d'extensions différentes
Merci
Mais toujours le même message à propos de la sub routine
je reverifie encore ma modification du batch
28/03/2013 @ 13:41:33: Jean-Christophe: "Synchro" entre fichiers d'extensions différentes
renomme ton fichier .bat en .cmd si tu veux bien
28/03/2013 @ 13:44:12: Georgio: "Synchro" entre fichiers d'extensions différentes
Pas de changement en changeant l'extension. Le dossier "Orphans" se crée bien mais toujours le probleme de "subroutine"
28/03/2013 @ 13:51:24: Jean-Christophe: "Synchro" entre fichiers d'extensions différentes
tu as bien doublé les % dans la ligne FOR? Je viens d'essayer ici, sur un windows 8 et ça fonctionne.
Mais en laissant les simples %, j'ai bien le même message d'erreur que toi
28/03/2013 @ 13:57:21: Georgio: "Synchro" entre fichiers d'extensions différentes
Bon la on avance vraiment...
J'ai donc supprimé les espaces entre les %
Mais là il me vire tous les nef dans le dossier Orphans
28/03/2013 @ 13:59:32: Jean-Christophe: "Synchro" entre fichiers d'extensions différentes
c'est qu'il ne trouve pas d'équivalent en JPEG dans l'autre folder.
Les fichiers ont bien les mêmes noms?
FolderNEF
- fichier1.nef
- fichier2.nef
- fichier3.nef
FolderJPEG
- fichier1.jpeg
- fichier3.jpeg
28/03/2013 @ 14:00:59: Georgio: "Synchro" entre fichiers d'extensions différentes
je crois que ca vient du fait que les fichiers sont en .JPG (MAJ etc...) je teste de modifier ca de mon coté
J'ai remplacé les jpeg par JPG mais toujours pas de modification au niveau du résultat
Mais au moins j'ai plus de message d'erreur
Ne te tracasse pas trop j'vais encore chipotter un peu pour voir ce que ca donne
28/03/2013 @ 14:03:34: H2G2: "Synchro" entre fichiers d'extensions différentes
Je serais bien incapable de pondre du code, mais au cas où le joli batch de JC ne produirait pas le résultat souhaité, il y a moyen de faire ce que tu cherches (sous Win 7, en tout cas) en jouant un peu avec le soft Ant Renamer (du vénéré antp
).
Par ex.:
Tu fais une copie de ton dossier 2 vers un dossier 3 où tu remplaces (avec Ant Renamer) toutes les extensions "JPEG" par "NEF".
Tu déplaces (ou tu copies pour pas tout niquer si ça foire) tout le contenu de ton dossier 1 vers le dossier 3, mais en demandant de conserver les fichiers du même nom pour que Windows ajoute un (2) dans le nom des nouveaux fichiers en double.
Toujours avec Ant Renamer, tu fais un remplacement de chaîne (en incluant l'extension) de "(2).NEF" par ".BON" (par ex.).
Dans ton dossier tu tries par extension et tu vires tous les "NEF".
Il ne te reste plus qu'à remplacer les extensions "BON" qui sont les seuls fichiers à rester par "NEF" et le tour est joué.
Maintenant, il y a sûrement plus simple, hein.
28/03/2013 @ 14:05:27: Georgio: "Synchro" entre fichiers d'extensions différentes
Et voila
J'avais juste oublié une occurence de jpeg dans le script
Ca marche nickel ^^
Merci merci...
PS :J'vais rajouter des remarques dans le script pour ne plus me faire passer pour un con la prochaine fois
N'empêche la j'ai fait fort niveau boulet attitude
28/03/2013 @ 14:16:13: Jean-Christophe: "Synchro" entre fichiers d'extensions différentes
Boh, ça marche, c'est le principal.
Et puis, on a pas été aidé par le forum qui a sucré les doubles % sans raison ni message d'avertissement