我需要一段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
的文件,该文件由数组!array%i%!
的内容组成,例如,如果数组的内容为
exampledata1
和exampledata2
,
该文件应包含
exampledata1
exampledata2
但是在执行过程中,它只是第一次跳转到循环
if not defined !array%i%! goto endsaveloop
即使!array%i%!
当时已明确定义。
答案 0 :(得分:1)
您可能会找到
set array>examplefile
或
for /f "tokens=1*delims==" %%a in ('set array 2^>nul') >>examplefile
有用。
set array
显示所有以array
开头的变量名的 current (即运行时)值。
第一个格式应为
array1=37
array10=61
array11=89
array2=55
...
因此您可以轻松地完全重装阵列
for /f "delims=" %%a in ('type examplefile') do set "%%a"
第二个应该屈服
37
61
89
55
请注意,这严格按照变量名的字母顺序。
对于您的问题,您需要if not defined array%i%
,因为!array%i%!
是变量的内容,而没有!
就是变量本身。例如,如果变量名if (not) defined 4
的内容为array%i%
,则您将执行4
。
答案 1 :(得分:0)
如果顺序很重要,我通常使用START i am just and example of a multiline paragraph having some unique informations in each para. I end with a capital END.
START i am just and example of a multiline paragraph having some unique informations in each para. You see in this paragraph I have one extra line.I end with a capital END.
遍历数组,只要我填充0即可。