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
Arrays 如何创建将数组内容保存到文件的批处理文件循环_Arrays_Batch File - Fatal编程技术网

Arrays 如何创建将数组内容保存到文件的批处理文件循环

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 所以

我需要一段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
所以我希望它创建一个名为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