>我想使用CMD(DOS)命令来解析文本文件。我想阅读每一行文本,并将该行写入仅包含该行的按顺序编号的新文件。如果输入文本文件有 57 行,则输出将是 57 个文本文件,每个文本文件包含一行。理想情况下,新文件的文件名将是输入文本文件中的行号。
因此,如果输入文件第 3 行的文本是"word"(或者如果这样可以更轻松地找到解决方案,则可能是"3,word"),则输出将是一个名为"3"的文件,其内容是"word"(或"3,word")。
有什么想法吗?
感谢您考虑这个问题。
如果没有一行以 :
开头
@echo off
for /f "delims=: tokens=1*" %%A in ('findstr /n "^" test.txt') do echo(%%B>"%%A"
如果行可能以 :
开头
@echo off
setlocal disableDelayedExpansion
for /f "delims=" %%A in ('findstr /n "^" test.txt') do for /f "delims=:" %%B in ("%%A") do (
set "line=%%A"
setlocal enableDelayedExpansion
echo(!line:*:=!>%%B
endlocal
)
但我同意斯蒂芬的观点——这似乎是一个奇怪的要求。可能有更好的方法来实现你的最终目标。