Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 如何连接批处理文件的命令行参数?_Batch File_Command Line_Arguments - Fatal编程技术网

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/?
并阅读所有输出帮助页。有一个与您的示例非常相似的
示例,解释了为什么必须使用延迟扩展来连接正确的字符串。没问题,如果这解决了您的问题,请勾选已接受的解决方案。没问题,如果这解决了您的问题,请勾选已接受的解决方案。