首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >批处理以从预定义列表中将某些字符串附加到特定的.txt文件中?

批处理以从预定义列表中将某些字符串附加到特定的.txt文件中?
EN

Stack Overflow用户
提问于 2016-12-10 03:33:04
回答 2查看 28关注 0票数 0

我使用for循环来创建带有预定义头的文本文件,但我想附加一个唯一的字符串(alice、bob等)。在每个文件的第2行上,从预定的列表。

代码语言:javascript
运行
复制
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%部件以使每次增加一个。我应该如何命名字符串变量才能做到这一点?这些都是正确的问题吗?

谢谢你找我。

EN

Stack Overflow用户

回答已采纳

发布于 2016-12-10 04:24:00

似乎您要解决的问题是能够在一个for循环中的两个列表之间迭代,而for循环一次只能迭代一个集合。这个问题更难解决,因为数组和列表并不是作为一流公民在批处理中真正存在的。

解决这个问题的方法有很多种,但一种更简单的方法是遍历名称,每次通过循环增加一个计数器。(这可能比for /l循环和递增名称列表更容易。)

下面是一个例子。

代码语言:javascript
运行
复制
@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循环可以迭代它们。
  • 在开始时设置计数器(x),然后在循环结束时增加它。
  • 我使用延迟扩展(setlocal enabledelayedexpansion)和!x!的语法,而不是%x%,这样批处理每次都通过循环解析变量x,而不是第一次(而且只有一次)通过循环来解析变量x,这样每次都能得到正确的增量值。

我希望这能帮上忙。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41071884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档