Besoin d'aide pour un script batch

Résolu
Utilisateur anonyme -  
barnabe0057 Messages postés 14329 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

2 réponses

  1. Flachy Joe Messages postés 2303 Statut Membre 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
    1. Utilisateur anonyme
       
      Je pense oui , sauf qu'il ne fonctionne pas ce script ...lol
      c'est pas un script batch (ms-dos WINDOWS)
      0
    2. Flachy Joe Messages postés 2303 Statut Membre 261
       
      Ah oui c'est un script BASH : Bourne-again shell, pour linux. Tu devrait essayer il marche impec dans ce cas ;-)
      0
    3. Utilisateur anonyme
       
      euh... jsuis sous Windows et je cherche un script BATCH ....
      0
    4. Flachy Joe Messages postés 2303 Statut Membre 261
       
      C'est bien ce que je dit tu devrait essayer les scripts BASH sous Linux :-p ;-)
      0
    5. Utilisateur anonyme
       
      Bon personne a une solution en BATCH ?
      0
  2. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930
     
    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
    1. 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
    2. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930
       
      Ok content de l'apprendre.

      Bonne continuation alors.
      0