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 - Fatal编程技术网

Batch file %*可用于为批处理文件中的列表或数组赋值吗?

Batch file %*可用于为批处理文件中的列表或数组赋值吗?,batch-file,Batch File,%1是第一个命令行参数,%2是第二个命令行参数,依此类推直到%9 %*引用所有参数。有没有办法像下面提到的shell脚本那样将这些值分配给列表 argv=(“$@”)其中,$@引用shell脚本中的所有命令行参数。类似的内容: @echo off setlocal enableDelayedExpansion set arg_number=0 for %%a in (%*) do ( set "args[!arg_number!]=%%a" set /a arg_number=

%1
是第一个命令行参数,
%2
是第二个命令行参数,依此类推直到
%9

%*
引用所有参数。有没有办法像下面提到的shell脚本那样将这些值分配给列表

argv=(“$@”)
其中,
$@
引用shell脚本中的所有命令行参数。

类似的内容:

@echo off

setlocal enableDelayedExpansion
set arg_number=0
for %%a in (%*) do (
    set "args[!arg_number!]=%%a"
    set /a arg_number=arg_number+1
)

echo %args[0]%
echo %args[1]%
echo %args[2]%

这是一个windows组。为什么要发布unix代码。将其发布到Unix。在windows中,我们使用
shift
命令。如果你不能使用Windows,你将如何得到一份工作。@拉面:为了说明手头的任务,使用与Unix的比较是非常有效的。你有什么问题?为什么要浪费Windows员工的时间在其他操作系统上。windows专家怎么知道toy OSs是做什么的呢?因为一个好的系统管理员对这两方面都有足够的常识。谢谢。为什么引号中的args[!arg_number!]=%%a?双引号不是必需的,只是标准做法,以防止在变量值中包含隐藏字符,如空格。@RRR,就像因为空格而在文件名和文件路径周围加引号是最佳做法一样。在SET命令周围加引号也有助于保护变量内容。有两个问题-1)这只适用于没有参数包含
*
的情况。2) 如果在赋值周围加引号,则必须使用
%%~a
删除参数中的任何现有引号,否则有毒字符可能会被保留为不带引号。批处理文件中的${parameter:+word}(如shell脚本中的${parameter:+word})是否有等效的变量替换方法?