[BATCH][FOR] Variable dynamique dans tokens..
Résolu
THANATOS
-
THANATOS -
THANATOS -
Bonjour,
J'essaye de rendre dynamique le tokens d'une boucle FOR.
Voici mon batch non opérationnel comme désiré :
@echo off
SETLOCAL ENABLEdelayedExpansion
set Lettre="a b c d e f g h i j k l m n o p q r s t u v w x y z"
set count=0
for /F %%I in ('dir /b /O:D "%CD%\*.zip"') do (
set /A count=!count!+1
for /f "tokens=!count! delims= " %%L in (%Lettre%) do (
echo %%L : %%I
)
)
pause
Il me retourne : !count! delims= " était inattendu.
J'aimerais de l'aide pour le rendre fonctionnel.
Ce que je cherche à faire c'est de faire une incrémentation alphabétique pour une sous boucle FOR.
Niveau alphabétique au début je désirer convertir du décimal (097 -> 122) ou Octal (141 -> 172) en caractère. Mais apparemment en batch ce n'ai pas possible ? Du coup j'ai mis l'alphabet dans une variable..
Vous avez peut-être une meilleur procédure à me suggérer ? Lachez-vous !
Mes salutations distinguées,
THANATOS.
J'essaye de rendre dynamique le tokens d'une boucle FOR.
Voici mon batch non opérationnel comme désiré :
@echo off
SETLOCAL ENABLEdelayedExpansion
set Lettre="a b c d e f g h i j k l m n o p q r s t u v w x y z"
set count=0
for /F %%I in ('dir /b /O:D "%CD%\*.zip"') do (
set /A count=!count!+1
for /f "tokens=!count! delims= " %%L in (%Lettre%) do (
echo %%L : %%I
)
)
pause
Il me retourne : !count! delims= " était inattendu.
J'aimerais de l'aide pour le rendre fonctionnel.
Ce que je cherche à faire c'est de faire une incrémentation alphabétique pour une sous boucle FOR.
Niveau alphabétique au début je désirer convertir du décimal (097 -> 122) ou Octal (141 -> 172) en caractère. Mais apparemment en batch ce n'ai pas possible ? Du coup j'ai mis l'alphabet dans une variable..
Vous avez peut-être une meilleur procédure à me suggérer ? Lachez-vous !
Mes salutations distinguées,
THANATOS.
A voir également:
- Batch tokens
- Fichier batch - Guide
- Batch converter - Télécharger - Photo & Graphisme
- Batch renommer une partie du nom de plusieurs fichiers ✓ - Forum Autoit / batch
- Renommer tous les fichiers d'un dossier - Forum Windows
- Color batch - Forum Autoit / batch
4 réponses
hello
DOS ne comprend pas ça : "tokens=!count!
que veux tu faire, afficher une lettre pour chaque .zip trouvé dans l'arborescence ?
a : nom1.zip
b : nom2.zip
c : nom3.zip
etc ?
DOS ne comprend pas ça : "tokens=!count!
que veux tu faire, afficher une lettre pour chaque .zip trouvé dans l'arborescence ?
a : nom1.zip
b : nom2.zip
c : nom3.zip
etc ?
Bonjour,
Ce qui est surprenant est que sans l'option expansion retardée de variables d'environnement (!) il est possible d'utiliser (sans erreur de syntaxe) une variable au lieu d'une valeur "en dur" . Exemple passé sous l'invite de commandes :
Résultat :
a b c
Ce qui est surprenant est que sans l'option expansion retardée de variables d'environnement (!) il est possible d'utiliser (sans erreur de syntaxe) une variable au lieu d'une valeur "en dur" . Exemple passé sous l'invite de commandes :
C:\Documents and Settings\Natalia>set /A rien = 1 C:\Documents and Settings\Natalia>set /A rien2 = 2 C:\Documents and Settings\Natalia>FOR /F "eol=; tokens=%rien%,%rien2%* delims=, " %i in ("a,b,c") do @echo %i %j %k
Résultat :
a b c
effectivement, tokens=%var% fonctionne, mais pas tokens=!var!
je ferais ainsi:
je ferais ainsi:
@echo off set c=1 SETLOCAL ENABLEdelayedExpansion set L=a b c d e f g h i j k l m n o p q r s t u v w x y z for %%d in (%L%) do ( set X.!c!.=%%d set /a c=c+1 ) set count=0 for /F "delims=" %%I in ('dir /b /O:D "%CD%\*.zip"') do ( set /A count=!count!+1 for /f "tokens=2 delims==" %%a in ('set X.^|findstr /l "X.!count!."') do echo %%a : %%I )