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

[系统相关] [已解决] 批处理if比较数字/数值的大小出现误判/判断错误/有误是什么原因?

本帖最后由 pcl_test 于 2017-4-10 13:54 编辑

因为at的任务ID显示有问题,没有按照从小到大的顺序,导致ID超过10后,9永远是排在最后显示
  1. >at
  2. 状态 ID     日期                    时间          命令行
  3. -------------------------------------------------------------------------------
  4.         1   今天                    12:12         aaa
  5.        10   今天                    12:12         aaa
  6.        11   今天                    12:12         aaa
  7.        12   今天                    12:12         aaa
  8.         2   今天                    12:12         aaa
  9.         3   今天                    12:12         aaa
  10.         4   今天                    12:12         aaa
  11.        47   今天                    7:53          Ver
  12.         5   今天                    12:12         aaa
  13.         6   今天                    12:12         aaa
  14.         7   今天                    12:12         aaa
  15.         9   今天                    12:12         aaa
复制代码
  1. ::获取时间变量
  2. set /a H=%time:~0,2%
  3. set /a M=%time:~3,2%
  4. set /a S=%time:~6,2%
  5. ::计算延迟时间
  6. if not %M% GEQ 53 (set /a M=M+7) else (set /a H=H+1&set /a M=%M%+7-60)
  7. ::修正延迟后的时间数值
  8. if %H% LSS 10 (set H=0%H%)
  9. if %M% LSS 10 (set M=0%M%)
  10. if %H% EQU 24 (set H=00)
  11. ::获取当前任务ID号
  12. at %H%:%M% "Ver"&for /f "skip=2" %%i in ('at') do (set /a ID=%%i+1&at %%i /delete)
  13. ::写入同步任务并自我删除
  14. at %H%:%M% "net time /set /yes&at %ID% /delete"
复制代码
我尝试在for里面嵌套if来比较大小来筛选,不过if里面的赋值不成功
  1. ::获取当前任务ID号并比较大小
  2. set /a ID=0
  3. setlocal enabledelayedexpansion
  4. at %H%:%M% "Ver"&for /f "skip=2" %%i in ('at') do (
  5.   if "%%i" GTR "!ID!" (set /a ID=%%i)
  6.   )
  7. echo %ID%
  8. pause
复制代码
试了两天都没什么思绪,请问如何可以实现获取到数值最大的那个ID号?
尽量不生成临时文件。
1

评分人数

回复 9# happy886rr


    我看了论坛教程可以加个eol参数,谢谢你。

TOP

回复 9# happy886rr
  1. 2
  2. 3
  3. 4
  4. 5
  5. 6
  6. 7
  7. 9
  8. 10
  9. 11
  10. 12
  11. 状态
  12. 请按任意键继续. . .
复制代码
sort参数有没有办法只显示数字?

TOP

回复 8# _FPXI19
晕,加个转义啊^

TOP

回复 6# happy886rr


    但是在for里面放不了|,会提示此时不应该有|

TOP

回复 5# _FPXI19


    Win7支持schtasks
Talk is cheap. Show me the code.
没事不要瞎扯淡,有能耐就把代码贴出来给我看。

TOP

本帖最后由 happy886rr 于 2016-4-11 09:47 编辑

回复 5# _FPXI19
一句sort不就完事了。
  1. at|sort
复制代码
1

评分人数

    • _FPXI19: 感谢帮了很大忙技术 + 1

TOP

回复 3# codegay


    环境特定WIndows7

TOP

回复 2# CrLf


    感谢。

TOP

用schtasks就不会产生这么奇怪的要求了。
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

if 那句的双引号去掉,你现在是字符串比较,不是数值比较

TOP

返回列表