Batch file 如何连接批处理文件的命令行参数?
我当前正在尝试将我的命令行参数与以下参数连接:Batch file 如何连接批处理文件的命令行参数?,batch-file,command-line,arguments,Batch File,Command Line,Arguments,我当前正在尝试将我的命令行参数与以下参数连接: for %%a in (%*) do set "subject=%subject% %%a" 例如,如果我跑步 my.bat subject line here 它应该将我的subject变量设置为“subject line here”,保留空格。但是,当前在运行之后,我的主题变量设置为最后一个单词。我的主题值是“这里” 如何正确连接命令行参数?您不能只执行以下操作: SET subject=%* 或者启用延迟扩展,以便在解析期间不会替换环境
for %%a in (%*) do set "subject=%subject% %%a"
例如,如果我跑步
my.bat subject line here
它应该将我的subject变量设置为“subject line here”,保留空格。但是,当前在运行之后,我的主题变量设置为最后一个单词。我的主题值是“这里”
如何正确连接命令行参数?您不能只执行以下操作:
SET subject=%*
或者启用延迟扩展,以便在解析期间不会替换环境变量
Setlocal EnableDelayedExpansion
for %%a in (%*) do set subject=!subject! %%a
echo %subject%
有关更多信息,请参阅。您不能只执行以下操作:
SET subject=%*
或者启用延迟扩展,以便在解析期间不会替换环境变量
Setlocal EnableDelayedExpansion
for %%a in (%*) do set subject=!subject! %%a
echo %subject%
有关详细信息,请参阅。如果您想知道环境变量
subject
在for循环后没有预期字符串的原因,请打开命令提示窗口,运行set/?
并阅读所有输出帮助页。有一个与您的示例非常相似的for
示例,解释了为什么必须使用延迟扩展来正确连接字符串。如果您想知道为什么环境变量subject
在for循环后没有预期的字符串,请打开一个命令提示窗口,运行set/?
并阅读所有输出帮助页。有一个与您的示例非常相似的示例,解释了为什么必须使用延迟扩展来连接正确的字符串。没问题,如果这解决了您的问题,请勾选已接受的解决方案。没问题,如果这解决了您的问题,请勾选已接受的解决方案。