2014-02-25 84 views
-1

我有.txt文件包含297行,我希望每一行复制到新的.txt文件,所以它将包含297文件,每个文件的文件名像这样line1.txt line2.txt line3.txt,可以使用批处理?批处理文件复制.txt文件中的每一行然后创建新的.txt文件的每一行

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

+4

请自便。这个网站不是免费的代码工厂,你有没有努力去解决这个问题? – Blorgbeard

+2

免费提示:'for /?' – Blorgbeard

+1

你到目前为止尝试过什么?另外,请记住Windows对文件名有限制长度和特定字符(例如“\”)。也许有更好的方法来完成任何你想要完成的任务。 – mbroshi

回答

0

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

文件名将与每行相同。

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

FOR /F是你想要的,使用的SET /A以数字递增的变量。因为CMD /批处理实际上只是假装成shell的打卡读卡器,所以source_file.txt的内容可能导致脚本中断。特别是,如果有任何特殊的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 
) 
0
setlocal enableextensions disabledelayedexpansion 
for /f "usebackq tokens=1,* delims=:" %%a in (
    'findstr /n "^" "file.txt"' 
) do echo(%%b>line%%a.txt 
endlocal 
相关问题