Besoin d'aide pour un script batch

Résolu
Utilisateur anonyme -  
barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention   -
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 2102 Date d'inscription   Statut Membre Dernière intervention   261
 
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
Utilisateur anonyme
 
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 2102 Date d'inscription   Statut Membre Dernière intervention   261
 
Ah oui c'est un script BASH : Bourne-again shell, pour linux. Tu devrait essayer il marche impec dans ce cas ;-)
0
Utilisateur anonyme
 
euh... jsuis sous Windows et je cherche un script BATCH ....
0
Flachy Joe Messages postés 2102 Date d'inscription   Statut Membre Dernière intervention   261
 
C'est bien ce que je dit tu devrait essayer les scripts BASH sous Linux :-p ;-)
0
Utilisateur anonyme
 
Bon personne a une solution en BATCH ?
0
barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925
 
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
 
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 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925
 
Ok content de l'apprendre.

Bonne continuation alors.
0