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 中的命令行参数无法操作(标记化等)并按原样传递给脚本。这是真的?有没有办法在从命令行读取输入时转义 , ?
引用你的论点,然后检索它们%~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)
示例会话:
