[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
不好意思,一个0之差,害你上不了机……
我在这里向你道歉

TOP

9# zm900612
8楼方案没有考虑到早上7、8、9点的情况,空格依然比0小的——这是什么意思?哪里来的空格
07:00
09:00

TOP

9# zm900612
你的代码不对,%time%的值一般类似这样
  1. C:\Users\helloworld\Desktop>echo %time%
  2. 17:36:33.27
复制代码
  1. C:\Users\helloworld\Desktop>if "05:59:33.29" geq " 6" echo hello
  2. hello
复制代码
  1. C:\Users\helloworld\Desktop>if "05:59:33.29" leq " 6" echo hello
复制代码
时间并没有正确判断。
利用%time%的关键是 : 符号在比较数值大小中究竟有没有起作用,起什么作用。
  1. @echo off
  2. :hello
  3. cls
  4. echo %time%
  5. set /p a=输入数值:
  6. if %time% gtr %a% echo %time%^>%a%
  7. if %time% equ %a% echo %time%^=%a%
  8. if %time% lss %a% echo %time%^<%a%
  9. pause
  10. goto hello
复制代码
初步验证似乎是起到小数点的作用。
1

评分人数

TOP

本帖最后由 Hello123World 于 2011-7-8 16:34 编辑

莫非变量值在预处理(编译)时,相当于加了双引号的字符串。

TOP

害你一场,也得帮你解决一下:
  1. @echo off
  2. set /p a=
  3. time %a%
  4. if "%time%" geq " 0:00" if "%time%" leq " 6:00" echo hello
  5. pause>nul
复制代码
if %time% geq 0:00 if %time% leq 06:00 shutdown /s /t 0

改为

if "%time%" geq " 0:00" if "%time%" leq " 6:00" shutdown /s /t 0

TOP

返回列表