返回列表 发帖
另外一种,以前经常用的:
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%a in (a.txt) do (
     set /a n+=100001
     echo !n:~-6!:%%a
)>tmp
(for /l "tokens=1* delims=:" %%a in ('sort /r tmp') do echo %%b)>2.txt
del tmp
start a.txtCOPY
但是碰到大文件时,for两遍的效率会很低

TOP

sort /r 111.txt >hello.txt
start "" "hello.txt"COPY

TOP

17# Hello123World


Windows的sort命令不会按照我们的想法去排序的
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

顶顶顶顶顶顶顶

TOP

哈哈 虽然这个已经解决了但是看到了 还是要给个好方法的。
REM :: 打开变量延迟
@Echo Off&SetLocal EnableDelayedExpansion
REM :: 设定一个增值变量值为0
Set Varn=0
REM :: 首次循环判断文本中一共有多少行,并将每一行赋值于一个变量。
For /f %%a in (1.txt) do (
Set Vara=%%a
Set /a Varn+=1
Set "Var!Varn!=!Vara!"
)
REM :: 反过来将变量输出
For /l %%b in (%Varn%,-1,1) do (
Echo !Var%%b!
)
PauseCOPY
不管文本中有多少行,如果行的内容比较复杂的话就要在第一个循环的For命令加上tokens=*参数

TOP

gawk "{a[NR]=$0}END{for(i=NR;i>=1;i--)print a[i]}" a.txtCOPY

TOP

返回列表