batch: множественный параметр FOR, взятый из аргументов команды - PullRequest
2 голосов
/ 26 ноября 2010

это то, что я пытаюсь сделать

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
)

Что я хочу сделать, это позвонить

find.bat "1 2 3 4" arg2 arg3

и я хочу, чтобы FOR был выполнен с 1 2 3 4 в качестве отдельных аргументов, так что вывод будет

1
2
3
4

Но, к сожалению, с этим кодом на выходе получается

"1 2 3 4"

Вы можете мне помочь? Спасибо!

1 Ответ

1 голос
/ 27 ноября 2010
SET "for_argument=%~1"

Таким образом, вы получаете аргумент for a b c d , но без кавычек это важно для цикла FOR. Строка в кавычках, такая как "a b c d" обрабатывается как один токен, но a b c d разделяется на четыре токена, допустимые разделители - пробел "," "; или "=".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...