[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 【已解决】批处理怎样把TXT文档,取单行,得到数据按小到大顺序排列?

本帖最后由 976235887 于 2015-9-7 08:27 编辑

a.txt文档如下

1222
1333
2555
5522
1155
4545

要求:1取单行的数据:
1222
2555
1155
要求:2取到的数据之后按从小到大的顺序排列
1155
1222
2555

谢谢以上各位。

TOP

  1. @echo off & setlocal enabledelayedexpansion
  2. %1%~f0 :|sort&pause&exit /b
  3. for /f "delims=" %%i in (1.txt) do (
  4. set /a line+=1,li=line%%2
  5. if !li!==1 echo;%%i
  6. )
复制代码

TOP

  1. :先下载http://batch-cn.qiniudn.com/tool/gawk.exe
  2. @(gawk "NR%%2" "a.txt")|sort >"b.txt"
复制代码

TOP

  1. @echo off & setlocal EnableDelayedExpansion
  2. if "%1"=="sub" (
  3.     for /f %%a in (a.txt) do (
  4.         set /a "t=1-t"
  5.         if !t!==1 (
  6.             set "s=                    %%a"
  7.             (echo;!s:~-20!)
  8.         )
  9.     )
  10.     exit
  11. ) else (
  12.     >b.txt ( for /f %%a in ('cmd /c %0 sub ^| sort') do echo %%a )
  13. )
  14. start b.txt
  15. pause
复制代码

TOP

本帖最后由 flyinnet9 于 2015-8-26 11:22 编辑

看错了。。。。。
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set n=0
  4. :s
  5. for /f "delims=" %%a in ('more +!n! a.txt') do (
  6.   echo %%a >>tmp
  7.   set /a n=n+2
  8.   if "%%a" neq "" goto s
  9. )
  10. sort tmp >2.txt
  11. del tmp /q
复制代码

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in (a.txt) do (
  3.     set /a n+=1
  4.     set /a num=!n!%%2
  5.     if !num!==1 echo;%%a&set "shuzi=!shuzi!%%a "
  6. )
  7. echo.
  8. for /l %%a in (0,1,100000) do (
  9.     for %%b in (!shuzi!) do (
  10.         if %%a==%%b echo;%%b>>2.txt
  11. )
  12. )
  13. pause
复制代码
文本里面的数字有多大 for /l In 后面的数字就改多大

TOP

返回列表