对不起。我读了这个问题,忍不住想澄清几点。
一个批处理文件通常接收几个单词作为参数,比如这些:
myScript.bat cars plans others
以前的批处理文件接收 3 个参数,这些参数可以通过 %1、%2 和 %3 以通常的方式处理。如果您希望单个参数接收几个词,则所有这些都必须用引号引起来:
myScript.bat "cars plans others"
上一个批处理文件接收一个参数,其中包含可以通过 %1 处理的多个单词。请注意,以下几行与前面的示例完全相同:
set QUEUES=cars plans others
myScript.bat %QUEUES%
上一个批处理文件接收3个参数,并且:
myScript.bat "%QUEUES%"
...上一个批处理文件接收一个参数。
list 是一个变量,其中包含多个由空格分隔的值,例如:
set QUEUES=cars plans others
您可以通过这种方式将此列表作为参数传递给批处理文件:
myScript.bat QUEUES
上一个批处理文件接收一个参数,它是一个列表变量。要处理 myScript.bat 中列表的值,请使用以下方法:
setlocal EnableDelayedExpansion
FOR %%q in (!%1!) DO echo %%q
数组是一个由数字下标标识的多个元素组成的变量,如下所示:
set NAMES[1]=cars
set NAMES[2]=plans
set NAMES[3]=others
数组通常有一种简单的方法来知道其中的元素数量;例如:
set NAMES.length=3
您可以通过这种方式将此字符串数组作为参数传递给批处理文件:
myScript.bat NAMES
上一个批处理文件接收一个参数,它是一个数组。要处理 myScript.bat 中的数组元素,请使用以下方法:
setlocal EnableDelayedExpansion
FOR /L %%i in (1,1,!%1.length!) DO echo !%1[%%i]!