Batch file 带参数的批处理文件输入
我正在进行一个批量局域网聊天,它有一个受支持的命令列表。我希望所有命令都有参数,而不是让用户单独输入提示 例如:Batch file 带参数的批处理文件输入,batch-file,input,Batch File,Input,我正在进行一个批量局域网聊天,它有一个受支持的命令列表。我希望所有命令都有参数,而不是让用户单独输入提示 例如: Set/pm=[命令] 因此,如果用户输入: 打招呼 它将使变量: m=send arg=hi 这应该适用于任何文本,如“say”或“ban”,而不仅仅是“send” 我如何使用Windows7实现这一点。如果需要,我可以发布整个代码。关注您的问题,即转换命令: 打招呼 要更改变量,请执行以下操作: m=send arg=hi 您可以使用FOR语句执行此操作 REM Get
Set/pm=[命令]
因此,如果用户输入:
打招呼
它将使变量:
m=send
arg=hi
我如何使用Windows7实现这一点。如果需要,我可以发布整个代码。关注您的问题,即转换命令: 打招呼 要更改变量,请执行以下操作:
m=send
arg=hi
FOR
语句执行此操作
REM Get user command.
Set /p m=[Command]
REM Reset arg variable.
SET "arg="
REM Parse command and arg out of the user entered value.
REM Tokens are broken up by a space.
FOR /F "tokens=1,* delims= " %%A IN ("%m%") DO (
SET m=%%A
REM arg variable will get all text after the first space.
SET arg=%%B
)
ECHO Command = %m%
ECHO Arg = %arg%
因此:
向世界问好
将输出:
Command = send
Arg = hello world
添加有关语言和平台的详细信息,github.com上有许多库可供使用that@MythTheWolf-基本上,您只需使用
令牌
FOR循环的部分。例如,更改为tokens=1,2,*
意味着在循环中,%%A
是第一个空格之前的文本,%%B
是第一个空格和第二个空格之间的文本,%%C
将是第二个空格之后的所有内容。您只需要相应地调整逻辑以使用这些值。