如何在 Windows 中反转文本文件

4 windows

请帮助我,如何在 Windows 中批量反转/排序文本文件中的行?
示例:
我有这种格式的文本

15/04/2013-07:10:30 拉拉拉
15/04/2013-07:10:30 文本文本
15/04/2013-07:10:30 1 拉拉文本

15/04/2013-07:10:36 8 text lala X
15/04/2013-07:10:36 A text lala 1

17/04/2013-10:11:12 B bext lala 4
...(其他行)

我需要以这种格式反转它

17/04/2013-10:11:12 B bext lala 4
15/04/2013-07:10:36 A text lala 1
15/04/2013-07:10:36 8 text lala X
15/04/2013 -07:10:30 1 拉拉文本
15/04/2013-07:10:30 文本文本
15/04/2013-07:10:30 拉拉
...(其他行)

感谢您的帮助!

小智 13

也许这不是最漂亮的方式,但它很简单,可以随心所欲地工作。

echo. > output.txt

for /f  "delims=@" %%j in (yourfile.txt) do (
    type output.txt > tmp
    echo %%j > output.txt
    type tmp >> output.txt
)

del tmp
Run Code Online (Sandbox Code Playgroud)

如果要处理大文件,请不要使用上面的示例。这确实是非常耗时和资源消耗的解决方案。这里有我刚准备好的更快版本:

setlocal enabledelayedexpansion

set I=0

for /F "tokens=*" %%k in (yourfile.txt) do (
  set /A I=!I! + 1
  set LINE!I!=%%k
)

for /L %%c in (!I!,-1,1) do (
  echo !LINE%%c! >> out.txt
)
Run Code Online (Sandbox Code Playgroud)

在我的机器上反转 40kb 文件(10k 行,每行 1 个字符)大约需要 1 分钟。记住它仍然只是批处理。有许多更好的脚本或编程语言可以更好地执行该操作。

  • 试想一下,对于一个大文件,这需要多长时间!这感觉就像河内塔文本处理! (4认同)
  • 好吧,我说过这不是最好的方法。我只是想出了一个处理小文件的简单想法。他想使用批处理进行这样的操作是他的问题:) 在我看来,这是最糟糕的选择。 (2认同)
  • 好的。有一个+1。批处理只是受虐狂。 (2认同)