2010-11-26 27 views
2

ce que je suis en train de fairelots: multiple pour le paramètre provenant des arguments de commande

find.bat:

@echo off 
SET for_argument=%1 
SET other_argument2=%2 
SET other_argument3=%3 

FOR %%A IN (%for_argument%) DO (
    echo %%A 
    rem do other stuff 
) 

Ce que je veux faire est d'appeler

find.bat "1 2 3 4" arg2 arg3 

et je veux que FOR soit exécuté avec 1 2 3 4 comme arguments séparés, de sorte que la sortie soit

1 
2 
3 
4 

Mais malheureusement avec ce code, la sortie est

"1 2 3 4" 

Pouvez-vous me aider? Merci!

+2

Essayez SET for_argument =% ~ 1, le ~ supprime les citations – jeb

+0

@jeb Je suis d'accord c'est la bonne réponse, s'il vous plaît déplacer vers le bas comme réponse. @ yelo3 alors s'il vous plaît acceptez-le. –

Répondre

1
SET "for_argument=%~1" 

Ainsi, vous obtenez dans le raisonnement pour a b c d, mais sans les guillemets, cela est important pour la boucle FOR. Une chaîne entre guillemets comme "a b c d" est traitée comme un jeton, mais a b cd est divisé en quatre jetons, les delims autorisés sont l'espace "," ";" ou "=".