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