批处理文件复制.txt文件中的每一行然后为每行创建新的.txt文件

时间:2014-02-25 02:02:25

标签: batch-file

我的.txt文件包含297行,我希望每一行都复制到新的.txt文件中,所以它将包含297个文件,对于文件名,每个文件都像这个line1.txt line2.txt line3.txt,它可以使用批处理吗?

我尝试在这里使用findrepl.bat和指令表单batch to copy FIRST line of multiple text files,但那只是第一行的脚本。

3 个答案:

答案 0 :(得分:1)

FOR /F是您想要的,使用SET /A以数字方式递增变量。因为CMD / batch实际上只是一个假装成shell的穿孔卡读卡器,source_file.txt的内容会导致脚本中断。特别是,如果它有任何特殊的shell字符(例如<>!“或&),shell会将它们解释为特殊字符,而不仅仅是将它们回显到输出文件。

SETLOCAL ENABLEDELAYEDEXPANSION
SET LINENO=1
FOR /F "delims=" %%l IN (source_file.txt) DO (
    ECHO %%l>file!LINENO!.txt
    SET /A LINENO=LINENO+1
)

答案 1 :(得分:0)

这应该拆分文件并为每一行创建单独的文件。

文件名将与每一行相同。

@echo off
for /f "delims=" %%a in (file.txt) do >>"%%a.txt" echo %%a

答案 2 :(得分:0)

setlocal enableextensions disabledelayedexpansion
for /f "usebackq tokens=1,* delims=:" %%a in (
    'findstr /n "^" "file.txt"'
) do echo(%%b>line%%a.txt
endlocal