【问题标题】:batch: multiple FOR parameter taken from command arguments批处理:取自命令参数的多个 FOR 参数
【发布时间】:2010-11-27 05:46:31
【问题描述】:

这就是我想要做的事情

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"

你能帮帮我吗? 谢谢!

【问题讨论】:

  • 尝试 SET for_argument=%~1,~ 去掉引号
  • @jeb 我同意这是正确的答案,请将其作为答案向下移动。 @yelo3 那么请接受。

标签: loops batch-file command-line-arguments


【解决方案1】:
SET "for_argument=%~1"

所以你得到了 for 参数 a b c d,但没有引号,这对于 FOR 循环很重要。 像 "a b c d" 这样的带引号的字符串被作为一个标记处理,但 a b c d 被分成四个标记,允许的分隔符是空格 "," ";"或“=”。

【讨论】:

    猜你喜欢
    • 2017-03-16
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 2010-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多