Bonjour,
Je souhaite scinder la variable %PATH% grâce aux délimiteur ;
Je ne sais même pas si c'est faisable en Batch (j'aimerai bien me passer de langage hôte si possible).
Merci de m'indiquer le chemin si possible !
Version imprimable
Bonjour,
Je souhaite scinder la variable %PATH% grâce aux délimiteur ;
Je ne sais même pas si c'est faisable en Batch (j'aimerai bien me passer de langage hôte si possible).
Merci de m'indiquer le chemin si possible !
hmm... Je ne sais pas trop comment faire, mais ce serait peut etre possible de définir une variable "chemin" dans laquelle tu mets ton %PATH%, et après, dans une variable "1" tu mets par exemple les 10 premières lettres, et dans une variable 2 le reste. Je ne sais pas du tout si c'est faisable^^
j'espère que quelqu'un de vachement plus calé que moi (c'est pas très dur lol) passeras par ce topic et te répondra précisement^^
Merci quand même, mais les variables variables sont de longueur différente.
J'ai continuer mes tests, j ai la premiere sous chaine avec ceci : reste a boucler sur les autres...
Code:
1
2
3 @echo off for /f "delims=;" %%i in ("%PATH%") do echo %%i
Je ne comprend pas le mot scinder, pourais tu m'expliquer ?
Peut être que je pourai t'aider ;)
Salut,
je veux faire un "explode" de la variable PATH en plusieurs sous chaines.
Mon code ci-dessus ne me renvoie que C:\WINDOWS\system32 et je voudrai boucler sur le reste de la chaine.
C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;
C:\program files\MinGW\bin;C:\Program Files\UnxUtils\usr\local\wbin;
etc
Je ne comprend pas explode non plu.
Donc si je comprend bien tu veut récupérer tous les chemin séparément ?
Je ne sais pas si c'est ca que tu veut mais:
Code:for /f "tokens=1,2,3,4,5,6,7,8,9 delims=;" %%i in ("%PATH%") do echo %%i %%j %%k %%l %%m %%n %%o %%p %%q
Yep c'est ce que je veut faire !
Cependant, le nombre de sous chaînes produite étant variable, comment connaître le nombre de Tokens ? y a t il une autre solution ou un caractere special pour les tokens (type "tokens=1,*) ?
Pour le tokens on peut aller jusqu'a 26, le nombre de lettre de l'alphabet, s'il y a plus de token que de chemin c'est pas grave, fait en 26 au moin c'est fait
Code:for /f "tokens=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 delims=;" %%a in ("%PATH%") do echo %%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
Si non blast killer a trouver une autre solution:
Code:
1
2
3
4
5
6
7
8
9
10
11 setlocal enabledelayedexpansion set acc=0 set var=%path% :boucle set /a acc+=1 if "%var%"=="%varbck%" pause &exit for /f "delims=;" %%i in ("%var%") do set a%acc%=%%i echo !a%acc%! set varbck=%var% set var=%var:*;=% goto boucle
Certe, j'avais lu ca dans help.Citation:
Pour le tokens on peut aller jusqu'a 26
Le code de blast killer fonctionne, je vais me renseigner sur tout ces mots clé que je ne connais pas. (devrait pas poser trop de problèmes).
Okey, merci pour toutes ces infos !!
enabledelayedexpansion, et les aut'machin comme le : devant boucle.
J'ai deja trouve dans une doc, je verrai cela se soir....