在多行中批量创建数组

时间:2014-05-22 14:59:41

标签: arrays windows batch-file

我正在尝试使用批处理文件将文件列表复制到特定目录。我需要做的第一件事是创建一个文件名列表。我看到这篇文章Create list or arrays in Windows Batch。以下工作正常。但我对它在一条线上的事实并不满意。随着我的文件列表变得越来越大,它变得难以阅读。

set FILE_LIST=( "file1.txt" "file2.txt" "file3.txt" )

然后我注意到了blog。它创建一个包含多行的数组。

set FILE_LIST[0]="file1.txt"
set FILE_LIST[1]="file2.txt"
set FILE_LIST[2]="file3.txt"

我想知道是否有一种创建数组的方法如下:

set FILE_LIST=( "file1.txt" 
     "file2.txt" 
     "file3.txt" )

这样我就可以将文件名分成多行,而不需要担心索引。

1 个答案:

答案 0 :(得分:7)

在你所指的同一主题中,有相当于这个解决方案(下面“你也可以用这种方式创建一个数组”):

setlocal EnableDelayedExpansion
set n=0
for %%a in ("file1.txt"
            "file2.txt"
            "file3.txt"
           ) do (
   set FILE_LIST[!n!]=%%a
   set /A n+=1
)