我使用for循环来创建带有预定义头的文本文件,但我想附加一个唯一的字符串(alice、bob等)。在每个文件的第2行上,从预定的列表。
Set a=alice
Set b=bob
Set c=chris
Rem ...etc. (I have about 30 files with a unique name to go in row 2 of each file)
For /l %%x in (1, 1 , 30) do (echo headerRow1 > file%%x.txt & echo %a% > file%%x.txt)我不明白如何在第二次迭代中自动插入"bob“(即。在“file2.txt”和"chris“中进行第三次迭代,并继续处理30个文件。
我是否以某种方式循环%a%部件以使每次增加一个。我应该如何命名字符串变量才能做到这一点?这些都是正确的问题吗?
谢谢你找我。
发布于 2016-12-10 04:24:00
似乎您要解决的问题是能够在一个for循环中的两个列表之间迭代,而for循环一次只能迭代一个集合。这个问题更难解决,因为数组和列表并不是作为一流公民在批处理中真正存在的。
解决这个问题的方法有很多种,但一种更简单的方法是遍历名称,每次通过循环增加一个计数器。(这可能比for /l循环和递增名称列表更容易。)
下面是一个例子。
@echo off & setlocal enabledelayedexpansion
set names=alice bob chris
set x=1
for %%a in (%names%) do (
>file!x!.txt (
echo headerRow
echo %%a
)
set /a x+=1
)备注:
for循环可以迭代它们。setlocal enabledelayedexpansion)和!x!的语法,而不是%x%,这样批处理每次都通过循环解析变量x,而不是第一次(而且只有一次)通过循环来解析变量x,这样每次都能得到正确的增量值。我希望这能帮上忙。
https://stackoverflow.com/questions/41071884
复制相似问题