在 Windows 脚本中读取命令行参数时,有没有办法转义逗号字符?

kno*_*ing 1 scripting command-line cmd batch-file command-line-arguments

我正在尝试从命令行读取多个输入参数。最后一个应该是逗号分隔的列表,但脚本只能读取逗号之前的第一个单词。

也就是说,当我调用脚本时:test.cmd a b c d,e,f
%4来作为d,而我希望它被读作d,e,f

我已经查找了很多来源来解决这个问题,但似乎 Windows 中的命令行参数无法操作(标记化等)并按原样传递给脚本。这是真的?有没有办法在从命令行读取输入时转义 , ?

roj*_*ojo 5

引用你的论点,然后检索它们%~1%~2等,如果你这样做test.cmd a b c "d,e,f"%~4将包含d,e,f

编辑:这是我在下面的第二条评论中描述的解决方法:

@echo off
setlocal

echo 1: %~1
echo 2: %~2
echo 3: %~3

:loop
if not "%~4"=="" (
    if defined four ( set "four=%four%,%~4" ) else set "four=%~4"
    shift /4
    goto loop
)

echo 4: %four%
Run Code Online (Sandbox Code Playgroud)

示例会话:

令牌