【发布时间】:2015-04-30 09:01:41
【问题描述】:
我需要一个批处理脚本,它用 4 行拆分文件并从这 4 行创建 4 个 txt 文件。
看起来像这样:test.txt
line 1
line 2
line 3
line 4
--> 每一行都应该输出到另一个txt文件中。
谢谢大家,安妮塔
【问题讨论】:
-
每一行都应该打印在同名文件中?
标签: file batch-file split lines createfile
我需要一个批处理脚本,它用 4 行拆分文件并从这 4 行创建 4 个 txt 文件。
看起来像这样:test.txt
line 1
line 2
line 3
line 4
--> 每一行都应该输出到另一个txt文件中。
谢谢大家,安妮塔
【问题讨论】:
标签: file batch-file split lines createfile
@echo off
setlocal enableextensions disabledelayedexpansion
set "inputFile=test.txt"
for %%z in ("%inputFile%") do if %%~zz gtr 0 (
set "lineNumber=1000000000"
for /f "delims=" %%a in ('
findstr /n "^" "%inputFile%"
') do (
set "line=%%a" & set /a "lineNumber+=1"
setlocal enabledelayedexpansion
>"%%~fz.!lineNumber:~-9!" (echo(!line:*:=!)
endlocal
)
)
【讨论】:
编辑:我稍微简化了代码...
@echo off
for /F "tokens=1* delims=:" %%a in ('findstr /N "^" test.txt') do (
> file%%a.txt echo(%%b
)
如果文件中的一行以冒号开头,此解决方案将消除冒号。如果需要,这个问题可能会得到解决。
【讨论】:
set /P,该行可以用引号引起来。这样,如果该行有特殊字符,如<|>&,它们会被正确复制...
;)我修改了代码...
echo(%%b,因为该行可能是空的或只有空白。
@echo off
set "filen=c:\file.txt"
for /f "usebackq tokens=* delims=" %%a in ("%filen%") do (
(echo(%%a>%%a)
)
【讨论】: