[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
我是这样写的 没测试特殊情况
  1. @echo off&setlocal enabledelayedexpansion
  2. set n=2147483647
  3. for /f "delims=" %%a in (a.txt) do (
  4.     for %%i in (%%a) do (
  5.         if "%%i"=="end" set flog=&echo !n!&set n=2147483647
  6.         if defined flog (
  7.         set "str=%%i"
  8.         if "!str:~,1!"=="a" (
  9.         set "m=!str:~1!"
  10.         set str=!str:.=!
  11.         for /l %%j in (0 1 9) do set str=!str:%%j=!
  12.            if "!str!"=="a" (
  13.            set n1=&set "n2="
  14.            if "!n:~,1!" neq "-" (
  15.            for  %%b in (n m) do for /f "tokens=1* delims=." %%m in ("!%%b!") do set %%b1=%%m&set "%%b2=%%n"
  16.            if !n1! equ !m1! (
  17.            if not "!n2!"=="" if "!n2!" gtr "!m2!" set n=!m!
  18.          ) else if !n1! gtr !m1! set n=!m!
  19.          )
  20.         )
  21.            if "!str!"=="a-" (
  22.            if "!n:~,1!" equ "-" (
  23.            for  %%b in (n m) do for /f "tokens=1* delims=." %%m in ("!%%b!") do set %%b1=%%m&set "%%b2=%%n"
  24.            if !n1! equ !m1! (
  25.            if not "!m2!"=="" if "!n2!" lss "!m2!" set n=!m!
  26.          ) else if !n1! gtr !m1! set n=!m!
  27.          ) else set n=!m!
  28.      )))
  29.            if "%%i"=="home" set "flog=x"
  30. ))
  31. pause
复制代码

TOP

原帖由 ohar 于 2009-8-10 15:32 发表
另外,如果文本中没有要搜索的字符,会出错,那么怎样让他继续执行别的代码呢

你意思是不是 没有A开头的呢  
改4楼代码这里 看可行不  if "%%i"=="end" set flog=&if !n! neq 2147483647 echo !n!&set n=2147483647
另:内存问题  你说数据1M 都没  应该没问题的啊
大小的判断是先设置一个变量  然后拿当前值的和变量比较 如当前值小 设置变量为当前值 这样一直就一变量N  内存应该不是问题吧
对了   FOR对单行字符应该有限制的吧

[ 本帖最后由 terse 于 2009-8-10 17:19 编辑 ]

TOP

原帖由 ohar 于 2009-8-10 17:42 发表
是啊,一直只对两个值进行比较,内存肯定没问题,可我有问题了,我只想到这样的思路,不能写出代码啊

4楼就是只对两个值比较的哦 但为什么还是有错
另你单行字符是否超出限制呢?

TOP

返回列表