Besoin d'aide pour un script batch

Résolu/Fermé
Utilisateur anonyme - 23 sept. 2011 à 17:55
barnabe0057 Messages postés 14454 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 30 novembre 2024 - 24 sept. 2011 à 15:45
Bonjour,

Je cherche à avoir un script qui fait les choses suivantes :

-Dans un répertoire pour tous les fichiers , on crée un répertoire du même nom que chaque fichier
-Chaque fichier est copié dans le répertoire créé portant le même nom


Par exemple dans un répertoire Images avec les fichiers:
Images/Photo1.jpg
Images/Photo2.jpg

On obtiendrait :

Images/Photo1/Photo1.jpg
Images/Photo2/Photo2.jpg




A voir également:

2 réponses

Flachy Joe Messages postés 2103 Date d'inscription jeudi 16 septembre 2004 Statut Membre Dernière intervention 21 novembre 2023 260
Modifié par Flachy Joe le 23/09/2011 à 18:39
Salut,
tu pensais à quelque chose comme ça ?

#!/bin/bash  
CD=$(pwd)    #Le Répertoire courant  
files=$(find $CD -maxdepth 1 -type f) #Les fichiers du répertoire courant  
for f in $files    #Boucles sur les fichiers  
do  
    file=$(basename $f)  #Nom du fichier
    new_rep=${file%\.*}  #Sans extension
    mkdir ${CD}/${new_rep}  #Création du répertoire
    mv $f ${CD}/${new_rep}/$file  #Déplacement  
done;  

;-) Flachy Joe ;-)

EDIT: correction d'un bug et suppression de l'extension dans le nom de repertoire
0
Je pense oui , sauf qu'il ne fonctionne pas ce script ...lol
c'est pas un script batch (ms-dos WINDOWS)
0
Flachy Joe Messages postés 2103 Date d'inscription jeudi 16 septembre 2004 Statut Membre Dernière intervention 21 novembre 2023 260
23 sept. 2011 à 18:41
Ah oui c'est un script BASH : Bourne-again shell, pour linux. Tu devrait essayer il marche impec dans ce cas ;-)
0
Utilisateur anonyme
23 sept. 2011 à 19:18
euh... jsuis sous Windows et je cherche un script BATCH ....
0
Flachy Joe Messages postés 2103 Date d'inscription jeudi 16 septembre 2004 Statut Membre Dernière intervention 21 novembre 2023 260
23 sept. 2011 à 19:38
C'est bien ce que je dit tu devrait essayer les scripts BASH sous Linux :-p ;-)
0
Utilisateur anonyme
24 sept. 2011 à 01:15
Bon personne a une solution en BATCH ?
0
barnabe0057 Messages postés 14454 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 30 novembre 2024 4 918
Modifié par barnabe0057 le 24/09/2011 à 14:52
Bonjour,
Voilà qui devrait faire l'affaire :


@echo off
rem
rem Creation dossier puis deplacement fichier
rem
for /f %%A in ('dir "%CD%\*.*" /B') do (
if %%~xA NEQ .bat (mkdir "%CD%\%%~nA" & move "%CD%\%%A" "%CD%\%%~nA\%%A")
)
cls
echo.
echo ***** Operations terminees *****
echo.
echo.
echo.
pause



A noter que le fichier bat doit être placé dans le répertoire à traiter.

Tiens-moi au courant.
0
Utilisateur anonyme
24 sept. 2011 à 15:44
Merci Barnabe...
Finalement j'ai réussi à me faire le script moi même .... il est moins sexy que le tien mais il fonctionne quand même...


for /r %%i in (*) do (
mkdir "%%~ni"
move "%%i" "%%~ni"
)
0
barnabe0057 Messages postés 14454 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 30 novembre 2024 4 918
24 sept. 2011 à 15:45
Ok content de l'apprendre.

Bonne continuation alors.
0