使用 DOS 命令将文本文件的每一行写入新编号的单独文本文件



>我想使用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
)

但我同意斯蒂芬的观点——这似乎是一个奇怪的要求。可能有更好的方法来实现你的最终目标。

最新更新