Programme en Dos de reconstruction chaine

charlylimaalpha Messages postés 26 Statut Membre -  
charlylimaalpha Messages postés 26 Statut Membre -
Bonjour,

Je reçoit dans des répertoires de 7 caracteres qui contiennent plusieurs des fichier de 6 a 8 caracteres et je cherche un script en en dos qui va reconstituer sans pour autant les classer (sauf à les mettre soit à la racine du C: ou dans un repertoire temp chaque fichiers composés ce coup-ci de7+(6à8) caractéres en faisant itération à chaque nouveau répertoire de 7 caractéres...

A voir également:

9 réponses

dubcek Messages postés 18786 Date d'inscription   Statut Contributeur Dernière intervention   5 641
 
hello
peux-tu donner un exemple?
1
dubcek Messages postés 18786 Date d'inscription   Statut Contributeur Dernière intervention   5 641
 
le echo va afficher la commande sans l'exécuter
C:> tree /a /f
C:.
+---1234567
|       11223344
|       22334455
|
\---2345678
        12341234
        43214321
C:> ..\cc
ren 11223344 123456711223344
ren 22334455 123456722334455
ren 12341234 234567812341234
ren 43214321 234567843214321
C:> type ..\cc.bat
@echo off
for /d %%a in (*.*) do (
        cd %%a
        for /f %%f in ('dir /b') do echo ren %%f %%a%%f
        cd ..
)
1
dubcek Messages postés 18786 Date d'inscription   Statut Contributeur Dernière intervention   5 641
 
pour déplacer
for /f %%f in ('dir /b') do move %%f C:\TEMP\%%a%%f
pour copier ailleurs
for /f %%f in ('dir /b') do copy %%f C:\TEMP\%%a%%f
1
dubcek Messages postés 18786 Date d'inscription   Statut Contributeur Dernière intervention   5 641
 
on peut soit copier ancien nom -> nouveau nom
for /d %%a in (*.*) do (
cd %%a
     for /f %%f in ('dir /b') do copy %%f C:\Work\transfert\%%a%%f
cd ..
)
soit renommer puis copier
for /d %%a in (*.*) do (
cd %%a
for /f %%f in ('dir /b') do (
     ren %%f %%a%%f
     copy %%a%%f C:\Work\transfert\%%a%%f 
     )
cd ..
)
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
charlylimaalpha Messages postés 26 Statut Membre 48
 
Bonjour Dubcek et Merci encore pour la fois dernière,
Voici donc ce nouvel exemple de mes tracas pour des visuels :
soit un repertoire nommé 1234567 dans ce répertoire il y a des fichiers, fichier1 : 8912345, fichier2 : 78965412 etc...
le but est de générer des fichiers qui se nomment en prenant les infos du répertoire et celles des fichiers contenus dans le répertoire soit par exemple 12345678912345 puis un autre fichier 123456778965412.
et de refaire cette manipulation pour chaque répertoire et leur contenu jusqu'à épuisement des répertoires et du dernier fichier contenu dans le dernier répertoire...
Merci beaucoup
0
charlylimaalpha Messages postés 26 Statut Membre 48
 
Merci pour cette réponse éclair !
Désolé de ne pas avoir répondu cette aprés midi.
En fait je n'ai pas compris ce qu'il fallait que je copie, cette partie lie bien mes différents répertoires et ses fichiers, mais ne semble pas générer de fichiers ou alors je n les trouve pas...
@echo off
for /d %%a in (*.*) do (
cd %%a
for /f %%f in ('dir /b') do echo ren %%f %%a%%f
cd ..
)

Que dois donc faire ?
Merci encore une fois.
0
dubcek Messages postés 18786 Date d'inscription   Statut Contributeur Dernière intervention   5 641
 
il faut enlever le echo pour les reommer :
for /f %%f in ('dir /b') do echo ren %%f %%a%%f 
que faut-il faire ? déplacer les fichiers, les renommer ou les copier ?
0
charlylimaalpha Messages postés 26 Statut Membre 48
 
Bonjour Dubcek,
Tu as raison, il faut renommer le fichier, et oui si le plus simple c'est encore de les laisser la ou il sont, mais renommés je vais gérer comme cela

avant action

+---1234567
| 11223344

action

ren 11223344 123456711223344

aprés action

+---1234567
| 123456711223344

sinon n'importe ou par exemple sous C:\temp que jevrai crée

123456711223344

Merci encore
0
charlylimaalpha Messages postés 26 Statut Membre 48
 
J'ai pris l'option copy dans un répertoire...je suis un boulet mais..
du coup, j'obtiens dans le répertoire un fichier qui se nomme %a0093719 alors qu'il devrait se nommer : 0093719635871 puisque dans le répertoire 0093719 se trouve un premier fichier nommé 635871. Et la boucle ne semble pas réagir pour générer autant de fichier...j'avais une dernière question, il s'agit en fait de fichier image (ce coup ci en .tif) comment puis-je aussi garder la propriété de l'image..
voici la commande que je lance :

for /d %%a in (*.*) do (
cd %%a
for /f %%f in ('dir /b') do echo ren %%f %%a%%f
cd ..
)
for /f %%f in ('dir /b') do copy %%f C:\Work\transfert\%%a%%f

Désolé, je suis un boulet !
0
charlylimaalpha Messages postés 26 Statut Membre 48
 
Merci merci,
Je vais gérer avec cela.
Y a t-il quelque chose que je puisse au moins essayer de faire pour te rendre service ?
Cordialement
0