[Résolu] passage de paramètres dans un script (.bat)

passage de paramètres dans un script (.bat) [Résolu] - Win NT/2K/XP - Windows & Software

Marsh Posté le 20-11-2008 à 11:14:25    

Bonjour,
Je tente de passer dans une boucle un paramètre issu d'un DIR...
ça marche bien sauf que si le fichier contient un espace, le paramètre s'arrête à l'espace.
Voici la ligne qui me pose problème:
 
for /f %%G in ('dir /B c:\temp\') do Call ::Proc %%G
 
Le dir /B me donne bien tous les fichiers du dossier lorsque je le teste sous DOS mais j'ai notamment un fichier qui s'appelle "accès privé.doc" et là, le paramètre %%G devient "accès".
Cela m'embête particulièrement car après je fais un test sur l'extension du fichier  :heink: .
Quelqu'un connait un truc pour contourner ce problème ?
Merci.
 
Cyril.


Message édité par cbo59 le 20-11-2008 à 12:02:09

---------------
http://kar-vastor.labrute.com
Reply

Marsh Posté le 20-11-2008 à 11:14:25   

Reply

Marsh Posté le 20-11-2008 à 11:16:22    

Tu auras plus de chance de trouver une réponse ici :  
http://forum.hardware.fr/hfr/Progr [...] ujet-1.htm

Reply

Marsh Posté le 20-11-2008 à 11:19:34    

OK, je sais pas pourquoi j'ai pas trouvé la section shell/batch tout à l'heure.
Merci.
Je fais une recherche et je déplace mon post ou je l'efface selon ce que je trouve.
 
Cyril.


---------------
http://kar-vastor.labrute.com
Reply

Marsh Posté le 20-11-2008 à 11:28:08    

Je pense que mon problème vient du paramètre delims dans la boucle for.
Je ne peux pas déplacer mon post moi-même, donc si un modérateur voulait bien me le déplacer, ce serait sympa.
Merci.
 
Cyril.


---------------
http://kar-vastor.labrute.com
Reply

Marsh Posté le 20-11-2008 à 11:35:26    

Bonjour
 
Ca fait lgtps que j'ai pas fait de batch, mais ton Proc ressemble a quoi ?
De mémoire il faut entourer les variables par des guillemets pour ne pas sauter les espaces, genre "$NomDossier"
D'ou : for /f %%G in ('dir /B c:\temp\') do Call ::Proc "%%G"
 
Cordialement


Message édité par SuppotDeSaTante le 20-11-2008 à 11:38:34

---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 20-11-2008 à 11:44:34    

Je viens d'essayer, ça marche pas :( .
Il passe pas l'espace...
Merci quand même.
 
Cyril.


---------------
http://kar-vastor.labrute.com
Reply

Marsh Posté le 20-11-2008 à 12:00:02    

C'est bon, c'était bien le delims, maintenant ma ligne à cette tête là:
 
for /f "delims=" %%G in ('dir /B c:\temp\') do Call ::Proc %%G
 
Encore merci.
 
Cyril.


---------------
http://kar-vastor.labrute.com
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed