Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1655 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [Batch] Déplacer des fichiers dans des dossiers?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Batch] Déplacer des fichiers dans des dossiers?

n°1638327
armyman
Posté le 07-11-2007 à 15:22:18  profilanswer
 

Bonjour, ca faisait longtemps que j'étais pas venu :)
 
Alors, j'aimerais classés des fichiers qui sont tous dans le même dossier, dans des dossiers datés, classage étant basé sur la date de création des fichiers.
 
Par exemple:

Code :
  1. +dossier_photos
  2.     +fichier_1.jpg (crée le 05/11/07)
  3.     +fichier_2.jpg (crée le 05/11/07)
  4.     +fichier_3.jpg (crée le 06/11/07)


 
Se transformerais en:

Code :
  1. +dossier_photos
  2.     +dossier_05_11_07
  3.         +fichier_1.jpg
  4.         +fichier_2.jpg
  5.     +dossier_06_11_07
  6.         +fichier_3.jpg


 
J'ai évidemment essayé quelques trucs, mais j'ai perdu mon peu de connaissance en Batch ^^
 
Merci d'avance de votre aide :)

mood
Publicité
Posté le 07-11-2007 à 15:22:18  profilanswer
 

n°1638328
FlorentG
Unité de Masse
Posté le 07-11-2007 à 15:23:10  profilanswer
 

Pourquoi ne pas faire ça en VBS, ce serait plus simple, je pense

n°1638334
armyman
Posté le 07-11-2007 à 15:26:52  profilanswer
 

Ben je veux bien moi, mais je connais pas du tout VBS ^^.

n°1638532
Coolnut
Posté le 07-11-2007 à 17:41:13  profilanswer
 

Voici:

Code :
  1. if /i exist "%~dp0listFch.txt" del "%~dp0listFch.txt" /f /q
  2. for /r "%~1\" %%i in (*.jpg) do echo %%i^|%%~ti>> "%~dp0listFch.txt"
  3.   for /f "tokens=1,2 delims=|" %%i in ('type "%~dp0listFch.txt"') do call :ccmd "%%i" "%%j"
  4. :ccmd
  5. set VrRecupChm=%~1
  6. set VrRecupDat=%~2
  7. set VrRecupDat=%VrRecupDat:~0,-6%
  8. set VrRecupDat=%VrRecupDat:/=_%
  9.   echo  ==^> %VrRecupChm%:%VrRecupDat%
  10. xcopy /s /e /c /i /h /f /r /y "%VrRecupChm%" "%userprofile%\Bureau\MonRep\%VrRecupDat%\ *.*"


Message édité par Coolnut le 07-11-2007 à 17:41:20
n°1638599
armyman
Posté le 07-11-2007 à 19:07:07  profilanswer
 

Merci, ca va m'aider je crois :D
 
J'essayerais demain et posterais le code modifié.

n°1638605
Coolnut
Posté le 07-11-2007 à 19:22:35  profilanswer
 

Il faut que tu fasse glisser le répertoire de tes photos sur le script

n°1638622
armyman
Posté le 07-11-2007 à 19:36:32  profilanswer
 

Ah c'est assez cool :)
 
Enfin, c'est pas exactement ce que je veux faire mais le principe est quasiment bon. Par exemple je vais déja changé xcopy en move car sinon ca fait des copies :o. Et puis, je pense qu'il y a moyen de se passer de créer un fichier texte.
 
En fait, je voulais juste savoir comment récupérer la date de création du fichier :D
 
Demain je posterais le code que j'ai utilisé pour faire mon truc, ptetre que ca en aidera d'autres :)

n°1639007
Coolnut
Posté le 08-11-2007 à 12:33:59  profilanswer
 

Le code que je t'ai donner précédament, c'est un autre qui la fait.
 
Mais je vein de le faire moi même a ta convenance:
 

Code :
  1. if not exist "%userprofile%\Bureau\MonRep" mkdir "%userprofile%\Bureau\MonRep"
  2. for /r "%~1\" %%i in (*.jpg) do set VrNamFch=%%i& set VrDatFch=%%~ti& call :movFch
  3. goto fin
  4. :movFch
  5. set VrDatFch=%VrDatFch:~0,10%
  6. set VrDatFch=%VrDatFch:/=-%
  7. if not exist "%userprofile%\Bureau\MonRep\%VrDatFch%" mkdir "%userprofile%\Bureau\MonRep\%VrDatFch%"
  8. move "%VrNamFch%" "%userprofile%\Bureau\MonRep\%VrDatFch%"
  9. goto :eof
  10. :fin


 
Ceci dit, si tu le fait d'une autre maniére montre moi ce que ca donne


Message édité par Coolnut le 08-11-2007 à 12:53:54
n°1639564
armyman
Posté le 08-11-2007 à 21:25:25  profilanswer
 

Bah j'ai fait a peu près la même chose en fait :)
 
Voici en gros le code final (%Folder% est défini autre part dans mon prog),

Code :
  1. FOR %%i IN (DCM*.jpg) DO (
  2. SET FileName=%%i
  3. SET FileDate=%%~ti
  4. CALL :MOVEIT
  5. )
  6. GOTO :EOF
  7. :MOVEIT
  8. SET FileDate=%FileDate:~0,-6%
  9. SET FileDate=%FileDate:/=-%
  10. SET FileFolder=%Folder%\%FileDate%
  11. IF NOT EXIST "%FileFolder%" MD "%FileFolder%"
  12. MOVE "%FileName%" "%FileFolder%"
  13. :EOF


 
Pratiquement la même chose en fait! C'etais surtout pour %%~ti que j'avais besoin d'aide, je savais pas que ca existait. Merci encore


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [Batch] Déplacer des fichiers dans des dossiers?

 

Sujets relatifs
Sauvegarde des fichiers c ou c++ sous visual c++Hébergement de fichiers & création d'un FTP sécurisé pr téléchargement
Comment trouver de titre des pages dans différents dossiers[Question] BATCH DOS : Ecrire un retour chariot dans variable
Exploiter Données fichiers csv sur excelbatch dos
[Résolu] Lister les fichiers d'un dossier[batch] ping tant que...
Problème pour générer la DTD de fichiers XMLBatch + Ant
Plus de sujets relatifs à : [Batch] Déplacer des fichiers dans des dossiers?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR