Voici mon problème:
je récupére des noms de dossiers dans une commande précédante. Ces noms sont stockés dans %%j

Je souhaite récuperer le nom de chaque dossier moins les 2 premiers caractères ! le tout dans une boucle for:

Code : 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


rem Ici, je récupère la liste des repertoires de mon dossier

for /f "delims=" %%j IN ('dir "%target%" /b /ad') DO (


rem ici, je défini la variable repertoire qui contient 
rem le chemin vers ce repertoire et je l'affiche (!repertoire!=OK)

set repertoire = %target%\%%j
echo !repertoire!


rem Ici, j'aimerai afficher  pour chaque repertoire 
rem tous les users dont le nom commence comme mon dossier 
rem moins les 2 premiers caractères !
rem (le problème est en rouge)

	for /f "delims=" %%k IN ('net localgroup users ^| findstr %%j')
 DO (
		echo user =  %%k
	)
)
En gros, je veux l'équivalent de %var~2% pour une variable en delayed expansion ou pour une variable de boucle for
Je veux soit
  • enlever les 2 premiers caractères de %%j
  • créer une variable avec set var=%%j et retirer ses 2 premiers caractères (mais cette variable sera !var! et pas %var% )

Avec les variables statiques, %var~2% fait exactement ça. Malheureusement,!var~2! ne fonctionne pas, ni %%j~2, ni %%~2j