Organiser des fichiers dans des répertoires en fonction de l

Une difficulté, une précision posez vos questions

Modérateur : WIN32-[GG]

Répondre
Eshen
Batcheur occasionnel
Messages : 3
Enregistré le : 25 mai 2015 13:03

Organiser des fichiers dans des répertoires en fonction de l

Message par Eshen »

Bonjour,

J'ai dans un répertoire 2400 fichiers à organiser en sous-répertoires qui ne sont pas encore créés.

Je souhaite créer automatiquement ces sous-répertoires en fonction des noms de fichiers : tous les fichiers dont les 34 premiers caractères sont identiques seront rangés dans un répertoire dont le nom sera constitué de ces 34 caractères, et ainsi de suite.

Par exemple, les fichiers FR075FMSH_000000051_8D3_art003-001_001.jpg et FR075FMSH_000000051_8D3_art003-001_002. jpg seront rangés dans un nouveau répertoire nommé FR075FMSH_000000051_8D3_art003-001.

J'ai retrouvé un batch que j'utilisais il y a quelques années mais, ne connaissant pas la programmation batch, j'ai complètement oublié les valeurs à modifier pour répondre à ce besoin:

Code : Tout sélectionner

@echo off
setlocal enabledelayedexpansion
for %%i in (*.*) do (
if not %%i==creation_repertoires.bat (
set rep=%%i
set rep1=!rep:~0,-4!
rename "%%i" "%%i.tmp"
md "!rep1!"
move "%%i.tmp" "!rep1!\%%i"
)
)
Pourriez-vous m'aider? Je n'arrive pas à interpréter la ligne

Code : Tout sélectionner

set rep1=!rep:~0,-4!
qui doit être celle à modifier.

E.
barnabe0057
SuperBatcher
Messages : 105
Enregistré le : 24 janv. 2017 13:41

Re: Organiser des fichiers dans des répertoires en fonction de l

Message par barnabe0057 »

Bonjour,

Cette ligne sert à découper la variable rep pour récupérer les 4 caractères en partant de la fin.
Eshen
Batcheur occasionnel
Messages : 3
Enregistré le : 25 mai 2015 13:03

Re: Organiser des fichiers dans des répertoires en fonction de l

Message par Eshen »

Bonjour,

Merci, cela paraît évident a posteriori...

J'obtiens quelque chose qui me semble convenir:

Code : Tout sélectionner

@echo off
setlocal enabledelayedexpansion
for %%i in (*.*) do (
if not %%i==creation_repertoires.bat (
set rep=%%i
set rep1=!rep:~24,-8!
rename "%%i" "%%i.tmp"
md "!rep1!"
move "%%i.tmp" "!rep1!\%%i"
)
)
J'espère que cela aidera d'autres personnes à l'avenir !

E.
morron
Batcheur occasionnel
Messages : 7
Enregistré le : 07 janv. 2017 21:39

Re: Organiser des fichiers dans des répertoires en fonction de l

Message par morron »

bonjour
Eshen
tu ne dis pas si ton problème est résolu
Fildexo
Batcheur occasionnel
Messages : 2
Enregistré le : 02 août 2017 06:25

Re: Organiser des fichiers dans des répertoires en fonction de l

Message par Fildexo »

It is another channel to keep up with good news.
Répondre