Batch particulier

Résolu
Bonjour,

je vous explique la situation :

j'ai un grand nombre de fichiers (env 1000) et je voudrais si possible tous les mettre dans un dossier un a un, c'est a dire que dans un dossier il y aurais seulement un fichier et que ce dossier dois avoir le même nom que le fichier sans l'extension

exemple:

moi j'ai actuellement :
test.doc
zic.doc
az.doc......

et je voudrais que le fichier test.doc sois dans un dossier qui s'appelle test et ainsi des suite pour tous

peut on faire quelque choses pour m'éviter de tous les créer a la mains svp par si il le faut je le ferais mais la je crois que je suis pas trop motivé loll

merci si quelqu'un avait un idée
--
Configuration: Windows XP
Firefox 3.0.4

3 réponses

  1. Salut,

    adaptes-le à tes besoins :

    @Echo off
    
    Setlocal  enabledelayedexpansion
    
    Set chemin=C:\Test\
    
    For /f "tokens=*" %%a In ('dir /a-d /b "%chemin%*.*"') Do (
    Set files=%%a
    Set nfiles=%%~na
    MD !nfiles!
    move !files! !nfiles!
    )
    
    endlocal
    
    1. Merci de ton aide

      j'ai toujours des difficulté ca ne marche pas j'ai juste changer le chemin pour le redirigé dans le dossier ou se trouve tous mes fichiers

      y a t'il autre chose a personnaliser ?
    2. @stephlbSALUT,

      mets-le dans, le repertoire cible

      @Echo off
      
      Setlocal  enabledelayedexpansion
      
      For /f "tokens=*" %%a In ('dir /a-d /b "*.*"') Do (
      Set files=%%a
      Set nfiles=%%~na
      MD !nfiles!
      move !files! !nfiles!
      )
      
      endlocal
    3. @SAW4Ok merci j'ai du mieux

      le probleme est que lorsque le nom du fichier est composé (exemple: service client micro) il me créer un dossier service un dossier client et un micro et donc ne met pas le fichier dans le dossiers
  2. mets les guillemets dans ta variable ..
    1. ok je viens de voir ton msg alors je te repose une question loll quelle variable?

      je ne connais rien en programmation désolé
  3. @Echo off
    
    Setlocal  enabledelayedexpansion
    
    For /f "tokens=*" %%a In ('dir /a-d /b "*.*"') Do (
    :::: -------- 
    Set files="%%~a"
    Set nfiles="%%~na"
    :::::---------
    MD !nfiles!
    move !files! !nfiles!
    )
    
    endlocal
    1. Yes ok un grand merci pour ton aide merci beaucoup!!!!!