Les Allergies
Alimentaires
Posez votre question Signaler

[BATCH][FOR] Variable dynamique dans tokens.. [Résolu]

THANATOS - Dernière réponse le 28 janv. 2010 à 16:36
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.
Lire la suite 

[BATCH][FOR] Variable dynamique dans tokens »

4 réponses
Réponse
+0
moins plus
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 ?
Ajouter un commentaire
Réponse
+0
moins plus
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 :

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
Ajouter un commentaire
Réponse
+0
moins plus
effectivement, tokens=%var% fonctionne, mais pas tokens=!var!
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
)
Ajouter un commentaire
Réponse
+0
moins plus
Je vous remercie pour vos réponses.
Je pense être arriver à mes fins :-)
Ajouter un commentaire
Ce document intitulé « [BATCH][FOR] Variable dynamique dans tokens.. » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?