Déplacer 13000 fichiers selon leur nom
joachim33
Messages postés
5
Statut
Membre
-
joachim33 Messages postés 5 Statut Membre -
joachim33 Messages postés 5 Statut Membre -
Bonjour à tous,
J'ai un souci avec mon .bat... Je vous expose tout ça.
Des fichiers .PCL sont générés automatiquement, et mis dans le répertoire H:\prot\archive du serveur Win 2003.
Ces fichiers ont un nom qui comprend 2 digits pour l'année, suivis de 2 digits pour le mois. Après, le reste du nom ne m'intéresse pas. Cela donne des noms comme 9506*.PCL, etc (Les années vont de 1995 à 2008)
J'ai réussi la première partie de mon .bat qui crée les répertoires + sous rep mensuels dans lesquels je veux transférer mes fichiers :
@echo off
cls
echo on
cd H:\prot\archive\
For %%Y in (95 96 97 98 99 00 01 02 03 04 05 06 07 08) do (
if not exist H:\prot\archive\%%Y (
MKDIR H:\prot\archive\%%Y
For %%M in (01 02 03 04 05 06 07 08 09 10 11 12) do (
MKDIR H:\prot\archive\%%Y\%%M)
Là où ça coince, c'est quand j'essaie de faire un move de mes quelques 13000 fichiers dans les répertoires dédiés
@echo off
cls
echo on
cd C:\prot\archive\
For %%Y in (95 96 97 98 99 00 01 02 03 04 05 06 07 08) do (
if not exist C:\prot\archive\%%Y (
MKDIR C:\prot\archive\%%Y
For %%M in (01 02 03 04 05 06 07 08 09 10 11 12) do (
MKDIR C:\prot\archive\%%Y\%%M
pause
pushd C:\prot\archive\
if exist %%Y%%M*.PCL (
Echo Tri en cours...
move C:\prot\archive\%%Y%%M*.PCL C:\prot\archive\%%Y\%%Y%%M*.PCL
popd
))))
Mon programme ne plante plus sans raison, mais il ne fait rien de particulier non plus...
Pouvez-vous me dire ce qui coince dans ma syntaxe ?
Un grand merci à tous
Joachim33
J'ai un souci avec mon .bat... Je vous expose tout ça.
Des fichiers .PCL sont générés automatiquement, et mis dans le répertoire H:\prot\archive du serveur Win 2003.
Ces fichiers ont un nom qui comprend 2 digits pour l'année, suivis de 2 digits pour le mois. Après, le reste du nom ne m'intéresse pas. Cela donne des noms comme 9506*.PCL, etc (Les années vont de 1995 à 2008)
J'ai réussi la première partie de mon .bat qui crée les répertoires + sous rep mensuels dans lesquels je veux transférer mes fichiers :
@echo off
cls
echo on
cd H:\prot\archive\
For %%Y in (95 96 97 98 99 00 01 02 03 04 05 06 07 08) do (
if not exist H:\prot\archive\%%Y (
MKDIR H:\prot\archive\%%Y
For %%M in (01 02 03 04 05 06 07 08 09 10 11 12) do (
MKDIR H:\prot\archive\%%Y\%%M)
Là où ça coince, c'est quand j'essaie de faire un move de mes quelques 13000 fichiers dans les répertoires dédiés
@echo off
cls
echo on
cd C:\prot\archive\
For %%Y in (95 96 97 98 99 00 01 02 03 04 05 06 07 08) do (
if not exist C:\prot\archive\%%Y (
MKDIR C:\prot\archive\%%Y
For %%M in (01 02 03 04 05 06 07 08 09 10 11 12) do (
MKDIR C:\prot\archive\%%Y\%%M
pause
pushd C:\prot\archive\
if exist %%Y%%M*.PCL (
Echo Tri en cours...
move C:\prot\archive\%%Y%%M*.PCL C:\prot\archive\%%Y\%%Y%%M*.PCL
popd
))))
Mon programme ne plante plus sans raison, mais il ne fait rien de particulier non plus...
Pouvez-vous me dire ce qui coince dans ma syntaxe ?
Un grand merci à tous
Joachim33
A voir également:
- Déplacer 13000 fichiers selon leur nom
- Déplacer colonne excel - Guide
- Renommer des fichiers en masse - Guide
- Fichiers epub - Guide
- Windows 11 deplacer barre des taches - Guide
- Wetransfer gratuit fichiers lourd - Guide
4 réponses
hello
hypothèse
if exist %%Y%%M*.PCL ...
exist attend 1 nom de fichier, or avec * il peut y en avoir plusieurs, faire une boucle ?
for /f %%f in (%%Y%%M*.PCL) do
hypothèse
if exist %%Y%%M*.PCL ...
exist attend 1 nom de fichier, or avec * il peut y en avoir plusieurs, faire une boucle ?
for /f %%f in (%%Y%%M*.PCL) do
Hé hé ça sent la solution ça...
C'est que je tâtonne encore beaucoup...
Merci beaucoup Dubcek, je teste ça tout de suite et reviens avec le résultat.
Joachim33
C'est que je tâtonne encore beaucoup...
Merci beaucoup Dubcek, je teste ça tout de suite et reviens avec le résultat.
Joachim33
Je viens de tester, mais je crois que je n'y suis pas encore :
@echo off
cls
echo on
cd C:\prot\archive\
For %%Y in (95 96 97 98 99 00 01 02 03 04 05 06 07 08) do (
if not exist C:\prot\archive\%%Y (
MKDIR C:\prot\archive\%%Y
For %%M in (01 02 03 04 05 06 07 08 09 10 11 12) do (
MKDIR C:\prot\archive\%%Y\%%M
pushd C:\prot\archive\
For /F %%F in (%%Y%%M*.PCL) do (
Echo Tri en cours...
move C:\prot\archive\%%Y%%M*.PCL C:\prot\archive\%%Y\%%M\%%Y%%M*.PCL
popd
))))
pause
Voici un extrait de la console :
C:\prot\archive>(if not exist C:\prot\archive\07 (
MKDIR C:\prot\archive\07
For %M in (01 02 03 04 05 06 07 08 09 10 11 12) do (
MKDIR C:\prot\archive\07\%M
pushd C:\prot\archive\
For /F %F in (07%M*.PCL) do (
Echo Tri en cours...
move C:\prot\archive\07%M*.PCL C:\prot\archive\07\%M\07%M*.PCL
popd
)
)
) )
Il manque encore un petit quelque chose ?
Merci