批处理比较数值大小 lss,equ和gtr的用法 if中gtr的特殊应用

简介: 转自:http://hi.baidu.com/fairsky007/blog/item/0d8a10850aad1124c75cc3e3.html 批处理比较数值大小 lss,equ和gtr的用法 电脑综合 2010-04-17 14:18:39 阅读196 评论0 ...
转自: http://hi.baidu.com/fairsky007/blog/item/0d8a10850aad1124c75cc3e3.html

批处理比较数值大小 lss,equ和gtr的用法

电脑综合 2010-04-17 14:18:39 阅读196 评论0    字号: 订阅

     EQU - 等于
NEQ - 不等于
LSS - 小于
LEQ - 小于或等于
GTR - 大于
GEQ - 大于或等于

比较大小.bat的源程序如下:

@echo off
set /p 第一个数=请输入第一个数- c% F. C2 k: ~# R
set /p 第二个数=请输入第二个数
if %第二个数% lss %第一个数% goto hero7 |! U; ~8 ?5 ?7 p9 g6 v. Y3 w" K0 v
if %第二个数% equ %第一个数% goto her
if %第二个数% gtr %第一个数% goto he9 @! i8 q& c; j; Z/ Q% ]
pause2 W) H7 w/ R$ @   g8 P
exit
:hero& b8 K1 _5 C' U0 A/ l% D
echo 第一个数比第二个数大!
pause# A6 \8 X9 P) t- B9 Z- g2 e1 a
%0
:her' t) K1 j. h# L
echo 第一个数等于第二个数!
pause
%0
:he- o$ e* U# ]" }4 |! V% ^" c
echo 第一个数比第二个数小!
pause
%07 \! s- e$ [0 E6 @
: T+ d6 Y# o0 [" H4 P% C

比较大小另 版.bat 的源程序如下:
5 B. b6 H8 i/ D* L
@echo off; R% @1 ~% g' W
set /p 第一个数=请输入第一个数
set /p 第二个数=请输入第二个数
if %第二个数% lss %第一个数% goto hero
if %第二个数% equ %第一个数% goto her' N( d7 j   i$ r8 e" A
if %第二个数% gtr %第一个数% goto he" h2 ~4 P2 m' V
:hero0 h( k, ?) \( C" t, \
echo 第一个数比第二个数大!5 a4 i$ L7 p% M; e% ]! T
pause
goto end
:her& ~2 r' Q7 X! g: j0 I& x
echo 第一个数等于第二个数!
pause$ k4 |( v4 B: _$ `" ~
goto end
:he   ^3 U/ K* S" W- D7 o: t
echo 第一个数比第二个数小!
pause
goto end
:end. t; R( v+ H# l4 C0 l( f( _. q# i
exit





命令行下如何用批处理比较数据大小?


set var1=3
set var2=2
if %var1% GTR %var2% goto ...

if /?:
执行批处理程序中的条件处理。
IF [NOT] ERRORLEVEL number command
IF [NOT] string1==string2 command
IF [NOT] EXIST filename command
NOT             指定只有条件为 false 的情况下,Windows 才
应该执行该命令。
ERRORLEVEL number 如果最后运行的程序返回一个等于或大于
指定数字的退出编码,指定条件为 true。
string1==string2   如果指定的文字字符串匹配,指定条件为 true。
EXIST filename 如果指定的文件名存在,指定条件为 true。
command           如果符合条件,指定要执行的命令。如果指定的
条件为 FALSE,命令后可跟一个执行 ELSE
关键字后的命令的 ELSE 命令。
ELSE 子句必须在 IF 之后出现在同一行上。例如:
IF EXIST filename. (
del filename.
) ELSE (
echo filename. missing.
)
因为 del 命令需要用一个新行终止,以下子句不会有效:
IF EXIST filename. del filename. ELSE echo filename. missing
由于 ELSE 命令必须与 IF 命令的尾端在同一行上,以下子句也
不会有效:
IF EXIST filename. del filename.
ELSE echo filename. missing
如果都放在同一行上,以下子句有效:
IF EXIST filename. (del filename.) ELSE echo filename. missing
如果命令扩展被启用,IF 会如下改变:
IF [/I] string1 compare-op string2 command
IF CMDEXTVERSION number command
IF DEFINED variable command
其中, compare-op 可以是:
EQU - 等于
NEQ - 不等于
LSS - 小于
LEQ - 小于或等于
GTR - 大于
GEQ - 大于或等于
而 /I 开关(如果指定)说明要进行的字符串比较不分大小写。
/I 开关可以用于 IF 的 string1==string2 的形式上。这些
比较都是通用的;原因是,如果 string1 和 string2 都是
由数字组成的,字符串会被转换成数字,进行数字比较。
CMDEXTVERSION 条件的作用跟 ERRORLEVEL 的一样,除了它
是在跟与命令扩展有关联的内部版本号比较。第一个版本
是 1。每次对命令扩展有相当大的增强时,版本号会增加一个。
命令扩展被停用时,CMDEXTVERSION 条件不是真的。
如果已定义环境变量,DEFINED 条件的作用跟 EXISTS 的一样,
除了它取得一个环境变量,返回的结果是 true。
如果没有名为 ERRORLEVEL 的环境变量,%ERRORLEVEL%
会扩充为 ERROLEVEL 当前数值的字符串表达式;否则,您会得到
其数值。运行程序后,以下语句说明 ERRORLEVEL 的用法:
goto answer%ERRORLEVEL%
:answer0
echo Program had return code 0
:answer1
echo Program had return code 1
您也可以使用以上的数字比较:
IF %ERRORLEVEL% LEQ 1 goto okay
如果没有名为 CMDCMDLINE 的环境变量,%CMDCMDLINE%
将在 CMD.EXE 进行任何处理前扩充为传递给 CMD.EXE 的原始
命令行;否则,您会得到其数值。
如果没有名为 CMDEXTVERSION 的环境变量,
%CMDEXTVERSION% 会扩充为 CMDEXTVERSION 当前数值的
字串符表达式;否则,您会得到其数值。

IF (DOS命令)

  执行批处理程序中的条件处理。

  IF [NOT] ERRORLEVEL number command

  IF [NOT] string1==string2 command

  IF [NOT] EXIST filename command

  NOT 指定只有条件为 false 的情况下, Windows XP 才

  应该执行该命令。

  ERRORLEVEL number 如果最后运行的程序返回一个等于或大于

  指定数字的退出编码,指定条件为 true。

  string1==string2 如果指定的文字字符串匹配,指定条件为 true。

  EXIST filename 如果指定的文件名存在,指定条件为 true。

  command 如果符合条件,指定要执行的命令。如果指定的

  条件为 FALSE,命令后可跟一个执行 ELSE

  关键字后的命令的 ELSE 命令。

  ELSE 子句必须在 IF 之后出现在同一行上。例如:

  IF EXIST filename. (

  del filename.

  ) ELSE (

  echo filename. missing.

  )

  因为 del 命令需要用一个新行终止,以下子句不会有效:

  IF EXIST filename. del filename. ELSE echo filename. missing

  由于 ELSE 命令必须与 IF 命令的尾端在同一行上,以下子句也

  不会有效:

  IF EXIST filename. del filename.

  ELSE echo filename. missing

  如果都放在同一行上,以下子句有效:

  IF EXIST filename. (del filename.) ELSE echo filename. missing

  如果命令扩展名被启用,IF 会如下改变:

  IF string1 compare-op string2 command

  IF CMDEXTVERSION number command

  IF DEFINED variable command

  其中,比较运算符可以是:

  EQU - 等于

  NEQ - 不等于

  LSS - 小于

  LEQ - 小于或等于

  GTR - 大于

  GEQ - 大于或等于

  及 /I 开关;如果该开关被指定,则说明要进行的字符串比较不分

  大小写。/I 开关可以用于 IF 的 string1==string2 的形式上。这些

  比较都是通用的;原因是,如果 string1 和 string2 都是由数字

  组成的,字符串会被转换成数字,进行数字比较。

  CMDEXTVERSION 条件的作用跟 ERRORLEVEL 的一样,除了它

  是在跟与命令扩展名有关联的内部版本号比较。第一个版本

  是 1。每次对命令扩展名有相当大的增强时,版本号会增加一个。

  命令扩展名被停用时,CMDEXTVERSION 条件不是真的。

  如果已定义环境变量,DEFINED 条件的作用跟 EXISTS 的一样,

  除了它取得一个环境变量,返回的结果是 true。

  如果没有名为 ERRORLEVEL 的环境变量,%ERRORLEVEL%

  会扩充为 ERROLEVEL 当前数值的字符串表达式;否则,您会得到

  其数值。运行程序后,以下语句说明 ERRORLEVEL 的用法:

  goto answer%ERRORLEVEL%

  :answer0

  echo Program had return code 0

  :answer1

  echo Program had return code 1

  您也可以使用以上的数字比较:

  IF %ERRORLEVEL% LEQ 1 goto okay

  如果没有名为 CMDCMDLINE 的环境变量,%CMDCMDLINE%

  将在 CMD.EXE 进行任何处理前扩充为传递给 CMD.EXE 的原始

  命令行;否则,您会得到其数值。

  如果没有名为 CMDEXTVERSION 的环境变量,

  %CMDEXTVERSION% 会扩充为 CMDEXTVERSION 当前数值的

  字串符表达式;否则,您会得到其数值。

if中gtr的特殊应用(时间&字母对比命令)

2009年05月06日 星期三 16:49
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

三、更奇妙的是,汉字和英文字也可以比较“大小”---找出字符串中的汉字
测试代码: 复制内容到剪贴板 代码: @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_!
目录
相关文章
|
编解码 UED
Qt侧边栏的动态切换:隐藏与显示技术详解
在现代用户界面设计中,侧边栏(Sidebar)是一个常见的组件,它为用户提供了导航和工具面板的功能。在某些应用场景下,我们可能需要动态地隐藏或显示侧边栏,以优化界面布局或提供更灵活的用户体验。本文将分享如何在Qt框架下实现侧边栏的隐藏与呈现,包括技术细节和代码示例。
1104 3
|
测试技术 C# 数据库
C# 单元测试框架 NUnit 一分钟浅谈
【10月更文挑战第17天】单元测试是软件开发中重要的质量保证手段,NUnit 是一个广泛使用的 .NET 单元测试框架。本文从基础到进阶介绍了 NUnit 的使用方法,包括安装、基本用法、参数化测试、异步测试等,并探讨了常见问题和易错点,旨在帮助开发者有效利用单元测试提高代码质量和开发效率。
675 64
|
计算机视觉 Windows Python
windows下使用python + opencv读取含有中文路径的图片 和 把图片数据保存到含有中文的路径下
在Windows系统中,直接使用`cv2.imread()`和`cv2.imwrite()`处理含中文路径的图像文件时会遇到问题。读取时会返回空数据,保存时则无法正确保存至目标目录。为解决这些问题,可以使用`cv2.imdecode()`结合`np.fromfile()`来读取图像,并使用`cv2.imencode()`结合`tofile()`方法来保存图像至含中文的路径。这种方法有效避免了路径编码问题,确保图像处理流程顺畅进行。
1588 1
|
编译器 C++
错误 C1128 节数超过对象文件格式限制: 请使用 /bigobj 进行编译
错误 C1128 节数超过对象文件格式限制: 请使用 /bigobj 进行编译
1337 0
|
10月前
|
监控 Linux
Linux systemd 服务启动失败Main process exited, code=exited, status=203/EXEC
通过以上步骤,可以有效解决 systemd 服务启动失败并报错 `Main process exited, code=exited, status=203/EXEC` 的问题。关键在于仔细检查单元文件配置、验证可执行文件的有效性,并通过日志分析具体错误原因。确保可执行文件路径正确、文件具有执行权限,并且可以独立运行,将有助于快速定位和解决问题。
4648 7
|
Windows
Windows系统命令dir使用详解
Windows系统命令dir使用详解
1625 2
|
Unix
bat批处理命令之Start的详细用法\批处理打开指定的应用程序\批处理最大化\最小化打开程序
bat批处理命令之Start的详细用法\批处理打开指定的应用程序\批处理最大化\最小化打开程序
3434 0
|
存储 算法 编译器
【C++ 引用 】C++深度解析:引用成员变量的初始化及其在模板编程中的应用(一)
【C++ 引用 】C++深度解析:引用成员变量的初始化及其在模板编程中的应用
1793 0
|
存储 缓存 编译器
探秘C++中的神奇组合:std--pair的魅力之旅
探秘C++中的神奇组合:std--pair的魅力之旅
897 1
探秘C++中的神奇组合:std--pair的魅力之旅
|
存储 安全 Linux
句柄是什么?一文带你了解!
今天又学习了一个装X概念——句柄,看字面意思,感觉跟某种器具有关,但实际上,这个词可不是用来打造家居用品的。
2345 0