Bonjour,

De base je gère mes argument comme ça

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
function test_arg()
		'Compare le nombre d'arguments passe au script par 
		'rapport au nombre d'arguments requis
		On Error Resume Next
		nb_arg_requis = 2				' Nombre d'arguments minimum obligatoire, si csrcipt sonde.vbs -a arg -w 2 -c 4 => 6 arguments obligatoire 
		test_nb_arg()					' test 
		dim argument
		for j = 0 to argcountcommand-1 Step 2
			argument = arg(j)
			select case argument
				case "-s","--service"
						SERVICE = arg(j+1)   	' met la valeur de l'argument saisie apres -s dans la variable SERVICE
						test_arg_oblig()
				case "-p","--password"
						PASSWORD = arg(j+1) 	' met la valeur de l'argument saisie apres -p dans la variable PASSWORD
				case else
						test_fin()  		' A utiliser si presence d'argument	
			end select
		next
		mode_normal()  ' A conserver
end function
des que mon script rencontre le paramètre -s par exemple, il prend l'argument d'après et le met dans la variable SERVICE et passe au paramètre suivant avec le case

mais la je suis fasse à un soucis je dois gérer le cas où l'argument après le paramètre "-s" peut être une phrase ou une suite de mot avec des espaces ce qui fait qu'avec case je rencontre des problèmes car l'argument d'après n'est pas forcement un nouveau paramètre mais peut être

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
function test_arg()
		'Compare le nombre d'arguments passe au script par 
		'rapport au nombre d'arguments requis
		On Error Resume Next
		nb_arg_requis = 4				' Nombre d'arguments minimum obligatoire, si csrcipt sonde.vbs -a arg -w 2 -c 4 => 6 arguments obligatoire 
		test_nb_arg()					' test 
 
		for j = 0 to argcountcommand-1 Step 2
			argument = arg(j)
			select case argument
				case "-r","--rep"
						test_arg_oblig
						REP = arg(j+1) 
						test_fin_arg_error = test_fin_arg_error + 2
				case "-e","--error"
						test_arg_oblig
						ERREUR = arg(j+1) 
						'wscript.echo arg(j+1) 
						x=1										'Gestion du cas ou l'erreur comporte des espaces, test si l'argument suivant est -l				
						test_fin_arg_error = test_fin_arg_error + 1
						do while arg (j+x+1) <> "-l" xor test_fin_arg_error = argcountcommand
						ERREUR = RTrim(ERREUR &" "& arg (j+1 +x))		'permet de recuperer l'erreur si elle est composée d'espaces
 
						x=x+1
						test_fin_arg_error = test_fin_arg_error + 1 
						arg(j+1) = ERREUR 								'permet de gerer le case dans le cas ou il y a un -l 
						arg (j+2) = arg (j+x+1)
 
						loop
 
				case "-l","--ligne"
						test_arg_oblig
						NB_LIGNES = arg (j+1)
 
				case else
						test_fin_wc()  		' A utiliser si presence d'argument	
			end select
		next
		mode_normal()  ' A conserver
end function
j'arrive à récupérer l'erreur avec les espaces dans ma variable mais j'ai des problèmes quand il faut passer au paramètre -l

je ne sais pas si j'ai été bien clair dans ma demande

Galène