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

时间:2015-01-10 19:18:17

标签: file parsing batch-file text

我想使用CMD(DOS)命令来解析文本文件。我想在每行文本中读取并将该行写入仅包含该行的新的顺序编号文件。如果输入文本文件有57行,则输出将是57个文本文件,每个文件包含一行。理想情况下,新文件的文件名将是输入文本文件中的行号。

因此,如果输入文件的第3行上的文本是“word”(或者它可以是“3,word”,如果这使得查找解决方案更容易),则输出将是名为“3”的文件,其内容为“word”(或“3,word”)。

有什么想法吗?

感谢您考虑这一点。

1 个答案:

答案 0 :(得分:0)

如果所有行都不以:

开头
@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
)

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