Un pro en batch dans le coin ?
19 messages
• Page 1 sur 2 • 1, 2
Consultez la formation au REFERENCEMENT naturel Google de WebRankInfo / Ranking Metrics
- max6
- WRInaute discret

- Messages: 168
- Inscription: 18 Mai 2003
Un pro en batch dans le coin ?
Salut
Voila j'aimerais faire un truc assez simple en batch mais n'y connaissant rien pour ainsi dire ca devient très compliqué.
J'ai une structure de dossiers comme cela :
/dossieregenerale/
/dossier-avec-nom-aleatoire/pics/0001.jpg,0002.jpg,...,0016.jpg
/dossier-avec-nom-aleatoire/pics/0001.jpg,0002.jpg,...,0016.jpg
/dossier-avec-nom-aleatoire/pics/0001.jpg,0002.jpg,...,0016.jpg
Ce que j'aimerais faire c'est prendre "0001.jpg,0002.jpg,...,0016.jpg" de chaque dossier et les placer dans un dossier numéroté 000001,000002,000003,etc..
Ces dossiers numérotés ne sont pas crées et seraient crées à la volée.
Donc résumons : on prend les 16 jpg de chaque dossier "pics" on les copie, on créer un dossier numéroté (a un autre endroit du disque evidemment) et on colle les 16 jpg dedans et ainsi de suite pour tous les dossiers ...
Possible ou non ?
Merc a tous
Voila j'aimerais faire un truc assez simple en batch mais n'y connaissant rien pour ainsi dire ca devient très compliqué.
J'ai une structure de dossiers comme cela :
/dossieregenerale/
/dossier-avec-nom-aleatoire/pics/0001.jpg,0002.jpg,...,0016.jpg
/dossier-avec-nom-aleatoire/pics/0001.jpg,0002.jpg,...,0016.jpg
/dossier-avec-nom-aleatoire/pics/0001.jpg,0002.jpg,...,0016.jpg
Ce que j'aimerais faire c'est prendre "0001.jpg,0002.jpg,...,0016.jpg" de chaque dossier et les placer dans un dossier numéroté 000001,000002,000003,etc..
Ces dossiers numérotés ne sont pas crées et seraient crées à la volée.
Donc résumons : on prend les 16 jpg de chaque dossier "pics" on les copie, on créer un dossier numéroté (a un autre endroit du disque evidemment) et on colle les 16 jpg dedans et ainsi de suite pour tous les dossiers ...
Possible ou non ?
Merc a tous
- bozoleclown
- WRInaute impliqué

- Messages: 893
- Inscription: 24 Nov 2005
tu peux poster là-bas
http://linuxfr.org/forums/26/index.html
on devrait te donner une réponse assez rapidement
http://linuxfr.org/forums/26/index.html
on devrait te donner une réponse assez rapidement
- pierre_jean
- WRInaute occasionnel

- Messages: 339
- Inscription: 6 Avr 2005
Re: Un pro en batch dans le coin ?
max6 a écrit:Salut
Voila j'aimerais faire un truc assez simple en batch mais n'y connaissant rien pour ainsi dire ca devient très compliqué.
je sais pas si j'ai bien compris mais voilà une base :
avec la struture suivante :
- Code: Tout sélectionner
/dossiergenerale/
/dossier-avec-nom-aleatoire/pics/0001.jpg
/dossier-avec-nom-aleatoire/pics/0002.jpg
/dossier-avec-nom-aleatoire/pics/0003.jpg
/dossier-avec-nom-aleatoire/pics/0004.jpg
/dossier-avec-nom-aleatoire/pics/0005.jpg
et le script :
- Code: Tout sélectionner
#!/bin/sh
find dossier-avec-nom-aleatoire/* -name "*.jpg" | cut -f3 -d '/' | cut -f1 -d '.' | while read nomfichier ;
do
mkdir dossiergenerale/00$nomfichier/
cp dossier-avec-nom-aleatoire/pics/$nomfichier.jpg dossiergenerale/00$nomfichier/$nomfichier.jpg
done
résultat :
- Code: Tout sélectionner
dossiergenerale/000001/0001.jpg
dossiergenerale/000002/0002.jpg
dossiergenerale/000003/0003.jpg
dossiergenerale/000004/0004.jpg
dossiergenerale/000005/0005.jpg
voila
- max6
- WRInaute discret

- Messages: 168
- Inscription: 18 Mai 2003
Je comprend pas le find dossier-avec-nom-aleatoire/* -name , parcque si j'ai mis dossier-avec-nom-aleatoire c'est que c'est un dossier dont je ne connais pas le nom.
Si tu veux "dossier-avec-nom-aleatoire" peut avoir n'importe quel nom.
Par contre le résultat n'est pas celui la, en fait il faudrait les 16 jpg des des dossiers "pics" (il y a 16jpg dans chaque dossier pics) dans 1 seul dossier donc :
Si tu veux "dossier-avec-nom-aleatoire" peut avoir n'importe quel nom.
Par contre le résultat n'est pas celui la, en fait il faudrait les 16 jpg des des dossiers "pics" (il y a 16jpg dans chaque dossier pics) dans 1 seul dossier donc :
- Code: Tout sélectionner
dossiergenerale/000001/0001.jpg,0002.jpg,0003.jpg,etc..
dossiergenerale/000002/0001.jpg,0002.jpg,0003.jpg,etc..
dossiergenerale/000003/0001.jpg,0002.jpg,0003.jpg,etc..
dossiergenerale/000004/0001.jpg,0002.jpg,0003.jpg,etc..
dossiergenerale/000005/0001.jpg,0002.jpg,0003.jpg,etc..
- pierre_jean
- WRInaute occasionnel

- Messages: 339
- Inscription: 6 Avr 2005
max6 a écrit:Je comprend pas le find dossier-avec-nom-aleatoire/* -name , parcque si j'ai mis dossier-avec-nom-aleatoire c'est que c'est un dossier dont je ne connais pas le nom.
Si tu veux "dossier-avec-nom-aleatoire" peut avoir n'importe quel nom.
ok
donc avec la structure de fichiers suivante :
- Code: Tout sélectionner
www/dossiergeneral/
www/dossieratraiter/aaa1/pics/0001.jpg
www/dossieratraiter/aaa1/pics/0002.jpg
www/dossieratraiter/aaa1/pics/0003.jpg
www/dossieratraiter/bbb2/pics/0001.jpg
www/dossieratraiter/bbb2/pics/0002.jpg
www/dossieratraiter/bbb2/pics/0003.jpg
www/dossieratraiter/ccc3/pics/0001.jpg
www/dossieratraiter/ccc3/pics/0002.jpg
www/dossieratraiter/ccc3/pics/0003.jpg
avec le script suivant dans le dossier www/ :
- Code: Tout sélectionner
#!/bin/sh
find dossieratraiter/* -name "*.jpg" | cut -f2 -d '/' | uniq | while read nomdossier ;
do
cpt=`expr $cpt + 1`
# compter les dossiers pour faire un masque sur 6 chiffres
# test longueur de chaine 1 : donc nom dossier 000001
if [ ${#cpt} -eq 1 ];
then
cpt=00000$cpt
# test longueur de chaine 2 : donc nom dossier 000010
elif [ ${#cpt} -eq 2 ];
then
cpt=0000$cpt
# test longueur de chaine 3 : donc nom dossier 000100
elif [ ${#cpt} -eq 3 ];
then
cpt=000$cpt
# test longueur de chaine 4 : donc nom dossier 001000
elif [ ${#cpt} -eq 4 ];
then
cpt=00$cpt
# test longueur de chaine 5 : donc nom dossier 010000
elif [ ${#cpt} -eq 5 ];
then
cpt=0$cpt
# test longueur de chaine 6 : donc nom dossier 100000
elif [ ${#cpt} -eq 6 ];
then
cpt=$cpt
fi
nouveaudossier=$cpt
mkdir dossiergeneral/$nouveaudossier/
find dossieratraiter/$nomdossier/* -name "*.jpg" | cut -f4 -d '/' | cut -f1 -d '.' | while read nomfichier ;
do
cp dossieratraiter/$nomdossier/pics/$nomfichier.jpg dossiergeneral/$nouveaudossier/$nomfichier.jpg
done
done
résultat du script :
- Code: Tout sélectionner
www/dossiergeneral/000001/0001.jpg
www/dossiergeneral/000001/0002.jpg
www/dossiergeneral/000001/0003.jpg
www/dossiergeneral/000002/0001.jpg
www/dossiergeneral/000002/0002.jpg
www/dossiergeneral/000002/0003.jpg
www/dossiergeneral/000003/0001.jpg
www/dossiergeneral/000003/0002.jpg
www/dossiergeneral/000003/0003.jpg
Dans le script il y a un masque sur 6 chiffres comme tu l'as indiqué dans ton exemple.
Voila
- max6
- WRInaute discret

- Messages: 168
- Inscription: 18 Mai 2003
Question peut etre idiote mais c'est du batch ca ?
Tu me parles de www/ , faut donc lancer ce script sous wamp ?
Et fi c'es une commande ?
Merci pour ta patiente ce script peut me faire économiser des journées de taf, j'ai des centaines de milliers de dossiers à traiter c'est pour ca que c'est sur 6 chiffres
Tu me parles de www/ , faut donc lancer ce script sous wamp ?
Et fi c'es une commande ?
- Code: Tout sélectionner
fi
nouveaudossier=$cpt
mkdir dossiergeneral/$nouveaudossier/
Merci pour ta patiente ce script peut me faire économiser des journées de taf, j'ai des centaines de milliers de dossiers à traiter c'est pour ca que c'est sur 6 chiffres
- pierre_jean
- WRInaute occasionnel

- Messages: 339
- Inscription: 6 Avr 2005
max6 a écrit:Question peut etre idiote mais c'est du batch ca ?
Tu me parles de www/ , faut donc lancer ce script sous wamp ?
Et fi c'es une commande ?
- Code: Tout sélectionner
fi
nouveaudossier=$cpt
mkdir dossiergeneral/$nouveaudossier/
Merci pour ta patiente ce script peut me faire économiser des journées de taf, j'ai des centaines de milliers de dossiers à traiter c'est pour ca que c'est sur 6 chiffres
www/ c'est un dossier quelconque ou tu met les script : dossier racine qui contient le dossieratraiter et le dossiergenerale
et fi c'est la fin d'un if
- max6
- WRInaute discret

- Messages: 168
- Inscription: 18 Mai 2003
Bon alors voila ce que j'ai fais
J'ai un dossier "photos_all" dans lequel j'ai crée un mis ton script que j'ai appelé "script.bat". Ensuite j'ai crée deux dossiers, un qui s'appel "dossieratraiter" et un autre "dossiergeneral".
Dans "dossieratraiter" j'ai :
Mais quand je lance le script ca marche pas ...
J'ai un dossier "photos_all" dans lequel j'ai crée un mis ton script que j'ai appelé "script.bat". Ensuite j'ai crée deux dossiers, un qui s'appel "dossieratraiter" et un autre "dossiergeneral".
Dans "dossieratraiter" j'ai :
- Code: Tout sélectionner
/dossieratraiter/test1/pics/0001.jpg,...,0016.jpg
/test2/pics/0001.jpg,...,0016.jpg
/test3/pics/0001.jpg,...,0016.jpg
Mais quand je lance le script ca marche pas ...
19 messages
• Page 1 sur 2 • 1, 2
Formation recommandée sur ce thème :
Formation REFERENCEMENT naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- lancer des batch
- Scheduler de traitement batch
- Batch pour lancer un sript php
- des pokeristes dans le coin ?
- Appel aux graphistes du coin
- Coin qui bouge et page tournante
- PHPers dans le coin? modif blogs
- Carte comme sur le bon coin = Danger ?
- Quid des techniques de ref du bon coin ?
- Le coin philo : Google a t'il une ame
Consultez la description détaillée des produits ou services de Google suivants : Google SketchUp
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

