2010-11-26 5 views
2

das ist, was ich versucheBatch: mehrere FOR-Parameter von der Kommando Argumente genommen

find.bat zu tun:

@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 
) 

Was ich tun möchte, ist Anruf

find.bat "1 2 3 4" arg2 arg3 

und ich möchte, dass FOR mit 1 2 3 4 als getrennte Argumente ausgeführt werden, so dass die Ausgabe

ist

Aber leider mit diesem Code ist die Ausgabe

"1 2 3 4" 

Können Sie mir helfen? Danke!

+2

Versuchen SET for_argument =% ~ 1, die ~ entfernt die Anführungszeichen – jeb

+0

@jeb Ich stimme zu, das ist die richtige Antwort, bitte verschieben Sie es als Antwort. @ yelo3 dann bitte akzeptieren Sie es. –

Antwort

1
SET "for_argument=%~1" 

So erhalten Sie in der für Argument a b c d, aber ohne die Anführungszeichen, das ist wichtig für die FOR-Schleife. Eine Zeichenfolge in Anführungszeichen wie "a b c d" wird als ein Token behandelt, aber a b c d ist in vier Token aufgeteilt, erlaubt delims sind Leerzeichen "," ";" oder "=".