Comics 2 folder.jpg

French support forum

Moderators: Stefan2, white, nsp

Post Reply
ninjaw
Junior Member
Junior Member
Posts: 8
Joined: 2007-10-03, 15:58 UTC

Comics 2 folder.jpg

Post by *ninjaw »

bonjour, je cherche a faire une operation tres simple mais fastidieuse:

- explorer un tas de repertoire
- trouver le premier fichier jpg
- le dupliquer
- le renommer en folder.jpg

Avec éventuellement un travail de reduction de jpg, mais ce n'est pas le plus dur.

L'objectif est simple: mettre la couverture de bd scannées dans le repertoire.
User avatar
TotalFan
Junior Member
Junior Member
Posts: 84
Joined: 2004-02-08, 21:24 UTC

Post by *TotalFan »

Regarde du côté du produit AutoIt.
ninjaw
Junior Member
Junior Member
Posts: 8
Joined: 2007-10-03, 15:58 UTC

Post by *ninjaw »

merci de l'info mais passer par l'automatisation des fenetres windows c'est beaucoup trop lourd.
Ainsi j'ai trouvé une solution en attendant:
-Creatuon de la liste de tous les fichier
-Isolation des premiers resultats par macro textpad
-mise en forme des resultat avce la commande copy dans un fichier .BAT
User avatar
TieFighter
Member
Member
Posts: 189
Joined: 2007-12-03, 12:58 UTC
Location: France

Post by *TieFighter »

on peux aussi tout faire en DOS

à mettre dans un fichier .cmd

@echo off

REM prendre tout les répertoires et appeler SUITE1
for /F %%a in ('dir /AD /b') do CALL :SUITE1 %%a

REM sortir
goto :eof

:SUITE1
REM aller dans le répertoire
cd %1
REM chercher le premier fichier sans l'extention
for /F %%a in ('dir /o-n /b *.jpg') do for /F "delims=. tokens=1,2" %%b in ('echo %%a') do set fic=%%b

REM si on veut avec l'extention : for /F %%a in ('dir /o-n /b *.jpg') do set fic=%%a

REM faire le doublon
copy %fic%.jpg %fic%_doublon.jpg
REM renommer le répertoire
cd ..
ren %1 %fic%
ninjaw
Junior Member
Junior Member
Posts: 8
Joined: 2007-10-03, 15:58 UTC

Post by *ninjaw »

je te remercie c'est un fantastique bout de code !
je n'ai pas compris cependnat pour quelel raison tu voulais renommer les repertoires ni creer des doublons, je souhaite purement et simplement installer les folder.jpg de chaque repertoire.
Voici donc ton code modifié (et donc simplifié) pour cette tache.

Il reste cependant un grave probleme ... ton code n'arrive à aller que dan sdes repertoires avec des noms sans espaces... c'est tres limité ! on peut reparer ca ?

Code: Select all

@echo off 

REM prendre tout les répertoires et appeler SUITE1 
for /F %%a in ('dir /AD /b') do CALL :SUITE1 %%a 

REM sortir 
goto :eof 

:SUITE1 
REM aller dans le répertoire 
cd %1 
REM chercher le premier fichier sans l'extention 
for /F %%a in ('dir /o-n /b *.jpg') do set fic=%%a 

REM si on veut avec l'extention : 

REM faire le doublon 
copy %fic% folder.jpg 
User avatar
TieFighter
Member
Member
Posts: 189
Joined: 2007-12-03, 12:58 UTC
Location: France

Post by *TieFighter »

De ta question :
- trouver le premier fichier jpg
- le dupliquer
- le renommer en folder.jpg
J'avais mal compris. j'ai pris folder au pied de la lettre d'où mon erreur.

Pour les noms long il suffit de rajouter la variable entre double quote par contre l'espace est le séparateur naturel de la commande for. Il faut donc rajouter "tokens=*" pour lui dire de prendre tous les morceaux en une variable.

Code: Select all

@echo off

REM prendre tout les répertoires et appeler SUITE1
for /F "tokens=*" %%a in ('dir /AD /b') do CALL :SUITE1 "%%a"

REM sortir
goto :eof

:SUITE1
REM aller dans le répertoire
REM NB si le répertoire s'appelle 'REP 1' %1 contiendra "REP 1" donc plus besion de mettre les " après
cd %1
REM chercher le premier fichier sans l'extention
for /F "tokens=*" %%a in ('dir /o-n /b *.jpg') do set fic="%%a"

REM faire le doublon
REM NB comme précédemment si le fichier s'appelle 'FIC 1' %fic% contiendra "FIC 1" donc plus besion de mettre les " après

copy %fic% folder.jpg
J'espère avoir répondu à ta demande.
ninjaw
Junior Member
Junior Member
Posts: 8
Joined: 2007-10-03, 15:58 UTC

Post by *ninjaw »

je suis desolé, mais ca ne semble pas plus fonctionner, j'ai des erreurs de "copie sur lui même" et seul un repertoire est fait correctement à chaque fois
User avatar
TieFighter
Member
Member
Posts: 189
Joined: 2007-12-03, 12:58 UTC
Location: France

Post by *TieFighter »

Oups!! J'ai coupé la dernière ligne, il manque cd .. :oops:

Voici la bonne version avec mes excuses

Code: Select all

@echo off

REM prendre tout les répertoires et appeler SUITE1
for /F "tokens=*" %%a in ('dir /AD /b') do CALL :SUITE1 "%%a"

REM sortir
goto :eof

:SUITE1
REM aller dans le répertoire
REM NB si le répertoire s'appelle 'REP 1' %1 contiendra "REP 1" donc plus besion de mettre les " après
cd %1
REM chercher le premier fichier sans l'extention
for /F "tokens=*" %%a in ('dir /o-n /b *.jpg') do set fic="%%a"

REM faire le doublon
REM NB comme précédemment si le fichier s'appelle 'FIC 1' %fic% contiendra "FIC 1" donc plus besion de mettre les " après

copy %fic% folder.jpg 

REM J'avais coupé cette ligne pour revenir au répertoire
cd ..
ninjaw
Junior Member
Junior Member
Posts: 8
Joined: 2007-10-03, 15:58 UTC

Post by *ninjaw »

Niquel !!!! ca semble fonctionner parfaitement ! par contre il ne remonte pas dans l'arborescence, mais c deja enorme pour les BDs et les albums MP3s en masse
ninjaw
Junior Member
Junior Member
Posts: 8
Joined: 2007-10-03, 15:58 UTC

Post by *ninjaw »

User avatar
TieFighter
Member
Member
Posts: 189
Joined: 2007-12-03, 12:58 UTC
Location: France

Post by *TieFighter »

Niquel !!!! ca semble fonctionner parfaitement ! par contre il ne remonte pas dans l'arborescence, mais c deja enorme pour les BDs et les albums MP3s en masse
Pour parcourir une arborescence, il suffit de rajouter de la recursivité

Code: Select all

@echo off

REM prendre tout les répertoires et appeler SUITE1
for /F "tokens=*" %%a in ('dir /AD /b') do CALL :SUITE1 "%%a"

REM sortir
goto :eof

:SUITE1
REM aller dans le répertoire
REM NB si le répertoire s'appelle 'REP 1' %1 contiendra "REP 1" donc plus besion de mettre les " après
cd %1
Ajout de la récursivité après le cd %1

Code: Select all

REM prendre tout les répertoires et appeler SUITE1
for /F "tokens=*" %%a in ('dir /AD /b') do CALL :SUITE1 "%%a"
Retour au code de folder.jpg

Code: Select all

REM chercher le premier fichier sans l'extention
for /F "tokens=*" %%a in ('dir /o-n /b *.jpg') do set fic="%%a"

REM faire le doublon
REM NB comme précédemment si le fichier s'appelle 'FIC 1' %fic% contiendra "FIC 1" donc plus besion de mettre les " après

copy %fic% folder.jpg 
cd ..
Je n'ai pas oublié le cd .. cette fois :lol: et le code parcours des répertoires
expl :
REP 1
|---REP2
|---REP3
| |---REP4
|---REP5
ninjaw
Junior Member
Junior Member
Posts: 8
Joined: 2007-10-03, 15:58 UTC

Post by *ninjaw »

Impressionant ! ca fonctionne parfaitement bien, voici le meme code remis en forme avec un titre:

Code: Select all

@echo off 
echo COMICS2FOLDER 1.0 par TieFighter 18dec07
echo Copier le premier JPG de chaque repertoire dans un fichier FOLDER.JPG

REM prendre tout les répertoires et appeler SUITE1 
for /F "tokens=*" %%a in ('dir /AD /b') do CALL :SUITE1 "%%a" 

REM sortir 
goto :eof 

:SUITE1 
REM aller dans le répertoire 
REM NB si le répertoire s'appelle 'REP 1' %1 contiendra "REP 1" donc plus besion de mettre les " après 
cd %1 

REM prendre tout les répertoires et appeler SUITE1 
for /F "tokens=*" %%a in ('dir /AD /b') do CALL :SUITE1 "%%a" 

REM chercher le premier fichier avec l'extention JPG
for /F "tokens=*" %%a in ('dir /o-n /b *.jpg') do set fic="%%a" 

REM faire le doublon 
REM NB comme précédemment si le fichier s'appelle 'FIC 1' %fic% contiendra "FIC 1" donc plus besion de mettre les " après 

copy %fic% folder.jpg 
cd .. 
Post Reply