Bonjour à tous,

Plus habitué au shell Linux, je ne m'en sors pas tout seul sur ce script batch que j'ai fait (avec mes petites connaissances et beaucoup de tâtonnements )...

Voici le code :
Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
@echo off
Setlocal EnableDelayedExpansion
:: Renumérotation d'une série de dossiers de type "XXXXX" (exemples : 50, 00500, 00807, 1307, 123456789)
:: en "PXXXXX" à 5 chiffres minimum (résultats des exemples : P00550, P01000, P01307, P123457289)
 
for /F %%a in ('dir /ad /b') do (
:: Listing des fichiers
:: /ad = uniquement les répertoires
:: /b = juste les noms, pas les détails
    set $nom=%%a
	set $org=%%a
    echo AVANT trim : !$nom!
    :: on supprime tous les éventuels "0" en préfixe
    :trim
    if "!$nom:~0,1%!"=="0" (
		set $nom=!$nom:~1!
        goto trim
    )
    echo APRES trim : !$nom!
    if !$nom! LSS 9999999999999999999 (
        :: Le nom du dossier est bien numérique
        :: On essaye de traiter que les dossiers dont le nom est un nombre
        echo TRAITEMENT DE !$nom!
        if !$nom! LSS 10000 (
            :: On ne rajoute des 0 devant que si le nombre contient au plus 4 chiffres
            set $nom=00000!$nom!
            set $nom=!$nom:~-5!
        )
        :: On rajoute un "P" devant
        echo AU FINAL : P!$nom!
        ren !$org! P!$nom!
    )
)
echo TRAITEMENT TERMINE

Je rencontre 2 soucis :
  1. il ne traite que le premier dossier (qu'il renomme comme il faut)
  2. J'ai régulièrement ce message : "Le lecteur spécifié est introuvable."


Voici une résultat affiché à l'écran :
Le lecteur spécifié est introuvable.
AVANT trim : 00500
APRES trim : 500
Le lecteur spécifié est introuvable.
TRAITEMENT DE 500
Le lecteur spécifié est introuvable.
AU FINAL : P00500
TRAITEMENT TERMINE
Si quelqu'un peut me dire quoi faire pour ces deux points....
Merci bien par avance !!!