如何创建多个带有递增数字的 txt 文件并使用批处理文件(.bat)写入其中

如何创建多个带有递增数字的 txt 文件并使用批处理文件(.bat)写入其中

我想批量创建多个带有递增数字的 txt 文件;这是我的示例

@echo off
for /l %i in (1,1,13) do
  @echo bla bla bla > "%i.txt"   
  @echo bla bla blo > "%i.txt"   
  @echo bli bli bla > "%i.txt"   
  @echo blom blom blom > "%i.txt"

请帮帮我。

答案1

以下将在当前工作目录中创建文件1.txt13.txt每个文件将包含指定的 4 行文本。

@echo off
for /l %%a in (1,1,13) do (
   >>%%a.txt echo bla bla bla
   >>%%a.txt echo bla bla blog
   >>%%a.txt echo bla bla bla
   >>%%a.txt echo blom blom blom
)

注意:使用@echo off它时,会隐藏脚本中从该点开始的命令执行输出。这意味着您不需要@在该点之后添加任何命令。

使用echo blah blah > %%A.txt将有效,但实际上最终会将blah blah{space}(行尾的空格)写入文件。相反,使用>>%%a.txt echo blah blah将导致blah blah


编辑:

根据 OP 关于使用文件正文的评论添加了此选项。

@echo off
setlocal enabledelayedexpansion
for /f "tokens=*" %%a in ('type "C:\Test Folder\MyList.txt"') do (
    set /a count+=1
    >!count!.txt echo %%a
)
endlocal
exit /B

这将从中逐行读取C:\Test Folder\MyList.txt,并将每一行添加1到名为的变量中count

接下来它将创建一个名为当前行号(例如1.txt 2.txt)的文件,并将从文件中读取的当前行放入该文件中MyList.txt

因此,如果文件中有以下几行MyList.txt...

Hey i'm first
Hi i'm second
Third line

你最终会得到...

1.txt包含行Hey i'm first

2.txt包含行Hi i'm second

3.txt包含行Third line

答案2

一个更简单的答案:

@echo off

::Create variable that stores newline, can be used as %NL%
( set LF=^
%= EMPTY =%
)
set "NL=^^^%LF%%LF%^%LF%%LF%"

for /L %%? in (1,1,13) do echo bla bla bla%NL%bla bla blog%NL%bli bli bla%NL%blom blom blom>%%?.txt

或者,不DELAYEDEXPANSION启用:

@echo off
setlocal ENABLEDELAYEDEXPANSION

::Create variable that stores newline, can be used as !LF!
( set LF=^
%= EMPTY =%
)

for /L %%? in (1,1,13) do echo bla bla bla!LF!bla bla blog!LF!bli bli bla!LF!blom blom blom>%%?.txt 

请务必检查:

相关内容