对不起,我看到这个问题,忍不住想澄清一些问题。
批处理文件通常会接收多个参数,比如这些:
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%"
...之前的批处理文件只接收一个参数。
列表是一个包含多个由空格分隔的值的变量,就像这个:
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]!