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
Windows 在批处理文件中,%*是什么意思?_Windows_Batch File_Cmd - Fatal编程技术网

Windows 在批处理文件中,%*是什么意思?

Windows 在批处理文件中,%*是什么意思?,windows,batch-file,cmd,Windows,Batch File,Cmd,我在批处理文件和命令行中看到了%*的用法 有人能用一个例子解释一下%*的典型用法吗?%*扩展到传递给脚本的参数的完整列表 通常,当您要调用其他程序或脚本并传递传递给脚本的相同参数时,可以使用它。它表示“命令行中的所有参数” 例如,当您希望将批处理文件中的命令行转发到另一个程序时,此选项非常有用: REM mybatchfile.cmd echo You called this with arguments: %* echo I will now forward these to the DIR

我在批处理文件和命令行中看到了
%*
的用法


有人能用一个例子解释一下
%*
的典型用法吗?

%*
扩展到传递给脚本的参数的完整列表

通常,当您要调用其他程序或脚本并传递传递给脚本的相同参数时,可以使用它。

它表示“命令行中的所有参数”

例如,当您希望将批处理文件中的命令行转发到另一个程序时,此选项非常有用:

REM mybatchfile.cmd
echo You called this with arguments: %*
echo I will now forward these to the DIR command.
dir %*
%*
修饰符是唯一的修饰符,表示批处理文件中传递的所有参数。您不能将此修饰符与
%~
修饰符结合使用。
%~
语法必须以有效的参数值终止

资料来源:

  • (已解散)

前面的回答中没有列出一个要点:
%*
从命令行扩展到所有参数,即使在执行
SHIFT
操作后也是如此


通常,
SHIFT
会将参数
%2
移动到
%1
%3
移动到
%2
,等等,
%1
不再可用。但是
%*
忽略任何
移位
,因此完整的参数列表始终可用。这可能是好事,也可能是坏事。

链接现在已断开。我在该页面的存档版本中添加了一个链接。请注意,文档中提到的是Windows XP。Windows 10可能有不同的修改器可用