我想批量创建多个带有递增数字的 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.txt
。13.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
请务必检查: