标题: [原创] 批处理if命令中gtr的特殊应用 [打印本页]
作者: youxi01 时间: 2007-12-30 22:36 标题: 批处理if命令中gtr的特殊应用
作者:youxi01
转载请注明
一、直接对日期大小进行比较。
比如,我要查找当前目录下,在2005-5-30以后的文件,则可以这样写:- @echo off
- for %%i in (*) do if %%~ti gtr 2005-05-30 echo %%~nxi
- pause>nul
复制代码
二、对字母直接进行比较。- @echo off
- call :echo c o
- echo.
- call :echo d k
- pause>nul
- :echo startw endw
- echo %1 到 %2 之间的字母有:
- for %%i in (a b c d e f g h i j k l m n o p q r s t u v w x y z) do (
- if %%i geq %1 if %%i leq %2 set /p=%%i <nul)
复制代码
三、更奇妙的是,汉字和英文字也可以比较“大小”---找出字符串中的汉字
测试代码:- @echo off
- setlocal enabledelayedexpansion
- set "str=我bat是home好.cn人"
- call :test "%str%"
- echo 提取出的汉字有:%cstr%
- pause>nul
- :test
- set "var=%~1"
- for /l %%i in (0 1 20) do (
- set "var_=!var:~%%i,1!"
- if "!var_!"=="" goto :eof
- if !var_! gtr Z set cstr=!cstr!!var_!
- )
复制代码
作者: 小竹 时间: 2007-12-30 22:57 标题: 回复 1# 的帖子
第三个不错!!!!支持一个!
作者: youxi01 时间: 2007-12-30 23:13
呵呵,这个很早写的了,曾经是为另外一个论坛写的...
作者: Frank 时间: 2008-1-5 15:34
第一个最实用...
作者: 浅默 时间: 2008-1-18 16:59
真是学到不少好东西!
作者: xxx3212 时间: 2008-1-18 17:14
第一次听说还能这样用 呵呵
作者: 浅默 时间: 2008-1-18 17:29
这是个学习的好地方,对一些细节的东西解释的很透,都是通过深入研究不断摸索,积累下的经验之谈!
作者: wc726842270 时间: 2010-11-27 21:02
有些不明白,汉字和字母之间是怎么进行比较的,(用什么进行比较的)
作者: hanyeguxing 时间: 2010-11-28 00:29
本帖最后由 hanyeguxing 于 2011-10-18 12:31 编辑
原帖由 wc726842270 于 2010-11-27 21:02 发表
有些不明白,汉字和字母之间是怎么进行比较的,(用什么进行比较的)
http://bbs.bathome.net/viewthread.php?tid=12329&highlight=
作者: wc726842270 时间: 2010-11-28 02:02 标题: 回复 9楼 的帖子
明白了一些,不过关于16进制还是再过些日子再接触吧,现在先记住用法,以后再深入,谢谢了
作者: BS0小陈 时间: 2011-10-18 11:06
下面是个人的观点(不知真伪,错了请指出):
由于批处理中不存在定义变量类型,所以就在判断上不容易判断。通常在“”里的多定为字符串,字符串里德大小比较规则:
1.字符串的判断是按顺序,而不是看长度;如字符串里2就大于17
2.字符串里:汉字>字母>数字>符号
3.数字比较:9>8>7>....>1>0,由于第一条所以字符串里2会大于17因为2>1
4.字母的大小:Z>z>Y>y>....>B>b>A>a,值得注意的是大写字母的比较不符合第一条,就是说 b2 大于 B 尽管 B>b ,也就是说
在多字符比较时B与b是等价的,我们还要往下看但是其他的非大写字母的比较都符合第一条,如 aB2 大于 Ab111111 我们就把前面
的ab不管大小写一视同仁后面的判断依旧。
5.汉字的比较根据拼音顺序,按字母排序;如“吧”大于“啊啊啊”
6.符号的判断就不清楚了。
那么如果不是字符串,是数字在使用if 判断时,我们就不能用""""(引号)括起来了要不就是字符了。通常用引号时个好习惯但是这里要是
想判断数字比较的话旧得不加引号了。
作者: wc726842270 时间: 2011-10-18 12:29
回复 11# BS0小陈
这种比较是依据字符集的比较的,好像是UNICODE吧(这类东西看的比较少)
作者: andy七少 时间: 2011-10-20 14:32
谁能给我个扩展参数的链接%~1那个~不是很明白
作者: Batcher 时间: 2011-10-20 22:09
回复 13# andy七少
http://www.bathome.net/viewthread.php?tid=2782#pid22365
作者: andy七少 时间: 2011-10-22 12:20
回复 14# Batcher
谢谢batcher
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |