Arrays 如何创建将数组内容保存到文件的批处理文件循环
我需要一段Windows批处理代码,它可以将从索引0开始的任意长度的内容从数组打印到一个文件中,并且每个值都指向文件中的新行 这是我尝试使用的代码:Arrays 如何创建将数组内容保存到文件的批处理文件循环,arrays,batch-file,Arrays,Batch File,我需要一段Windows批处理代码,它可以将从索引0开始的任意长度的内容从数组打印到一个文件中,并且每个值都指向文件中的新行 这是我尝试使用的代码: setlocal EnableDelayedExpansion set i=0 :saveloop if not defined !array%i%! goto endsaveloop echo !array%i%! >> examplefile.txt set/a i+=1 goto saveloop :endsaveloop 所以
setlocal EnableDelayedExpansion
set i=0
:saveloop
if not defined !array%i%! goto endsaveloop
echo !array%i%! >> examplefile.txt
set/a i+=1
goto saveloop
:endsaveloop
所以我希望它创建一个名为examplefile.txt的文件,该文件包含数组的内容!数组%i%!,例如,如果数组的内容是
示例数据1和示例数据2,
该文件应包含
exampledata1
exampledata2
但在执行过程中,它只是在第一次通过循环时在
如果没有定义!数组%i%!转到endsaveloop
尽管数组%i%!在这一点上是明确定义的。您可能会发现
set array>examplefile
或
有用
set array显示启动数组的所有变量名称的当前ie.运行时值
第一种格式应为
array1=37
array10=61
array11=89
array2=55
...
因此,您可以轻松地完全按照使用时的方式重新加载阵列
for /f "delims=" %%a in ('type examplefile') do set "%%a"
第二个应该是让步
37
61
89
55
请注意,这是按变量名称的严格字母顺序排列的
至于您的问题,如果未定义数组%i%As,则需要!数组%i%!是变量的内容,而没有!这是变量本身。例如,如果variablename数组%i%的内容是4,则如果未定义4,则您将执行该操作。如果序列很重要,我通常使用Set在数组中迭代,只要我填充0即可。这是if defined var,而不是if defined%var%,因此代码应为:if not defined array%i%goto endsavelop
37
61
89
55