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

[文本处理] 数字大小对比及输出批处理求助

a.txt 下 有如下内容:

a1#b1#12#xxx
a2#b2#13#xxx
a3#b3#14#xxx
a4#b4#15#xxx
a5#b5#435#xxx
a6#b6#17#xxx
a7#b7#168#xxx

求找出C列 最大的数字的行。绞尽脑汁了,毫无办法。

那列是C列呢

TOP

就是找出C列 最大的数,并且输出正行
如:
a5#b5#435#xxx
435 就是最大的

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "tokens=1-3* delims=#" %%i in (a.txt) do (
  4. if "!max!"=="" (
  5. set "max=%%k"
  6. ) else (
  7. if %%k gtr !max! (
  8. set "max=%%k"
  9. set "line=%%i#%%j#%%k#%%l"
  10. )
  11. )
  12. )
  13. echo max:  !max!
  14. echo line: !line!
  15. pause&exit
复制代码
回复 3# 484197121

TOP

回复 4# went


    感谢,测试了完美解决问题。仔细一行行代码分析了,豁然开朗。

再次感谢!

TOP

回复 4# went


    有很多TXT  该怎么处理?
for %%a in (%cd%\xxx\*.*) do (
        for /f "tokens=1-3* delims=#" %%i in (%%a) do (
                if "!a!"=="" (
                        set "a=%%k"
                ) else (
                        if %%k gtr !a! (
                                set "a=%%k"
                                echo %%a,%%i#%%j#%%k#%%l"
                        )
                )
        )
        echo a:  !a!
        echo %%a,!line!>>xxxxxx.csv

)
我试了 这样不行,

TOP

本帖最后由 went 于 2020-4-11 11:21 编辑
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. REM txt folder
  4. set "folder=C:\Users\lenovo\Desktop\xxx"
  5. REM csv file
  6. set "csv=out.csv"
  7. for /r "%folder%" %%a in ("*.txt") do (
  8. set "max="
  9. for /f "usebackq tokens=1-3* delims=#" %%i in ("%%a") do (
  10. if "!max!"=="" (
  11. set "max=%%k"
  12. set "line=%%i#%%j#%%k#%%l"
  13. ) else (
  14. if %%k gtr !max! (
  15. set "max=%%k"
  16. set "line=%%i#%%j#%%k#%%l"
  17. )
  18. )
  19. )
  20. echo %%a
  21. echo !max!,!line!
  22. echo !max!,!line! >>"%~dp0%csv%"
  23. echo ----------------------
  24. )
  25. pause&exit
复制代码

TOP

回复 7# went


测试 第三个 会输出空白

TOP

回复 8# 484197121


        11行下面加上
  1. set "line=%%i#%%j#%%k#%%l"
复制代码
一开始就找到最大值,line没有赋值,7楼已修改

TOP

多谢方便留个联系方式不

TOP

回复 10# 484197121


    746531439

TOP

回复 11# went


    加不了 验证$

TOP

回复 12# 484197121


以关闭,hh

TOP

返回列表