![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-05 08:00 |
共 48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 如何将 日期 跟 时间判断做在一起?(已解决) |
| 可打印版本 854 / 6 |
| 第1楼 leton | 发表于 2007-07-09 09:43 |
| 初级用户 发帖 72 积分 170 | |
|
如何将 日期 跟 时间判断做在一起?(已解决) @Echo :Ri >nul 2>nul
@Set Date="" >nul 2>nul @For /f "tokens=2,3 delims=; " %%a in ('Date /T') do Set Date=%%a >nul 2>nul @Echo %Date% >nul 2>nul @If %Date% EQU 星期日 ( Exit ) Else ( Goto Begin-15 ) >nul 2>nul :Begin-15 @Set Date="" >nul 2>nul @for /f "tokens=3 delims=- " %%a In ('date /t') do Set Date=%%a >nul 2>nul @Echo %Date% >nul 2>nul @If %Date% EQU 15 ( Goto Time ) Else ( Goto Begin-16 ) >nul 2>nul :Begin-16 @Set Date="" >nul 2>nul @for /f "tokens=3 delims=- " %%a In ('date /t') do Set Date=%%a >nul 2>nul @Echo %Date% >nul 2>nul @If %Date% EQU 16 ( Goto Time ) Else ( Exit ) >nul 2>nul 需求:脚本每个月只运行一次,并且必须是非星期天.怎么写好?上面是自己写的,但达不到要求,只要15号和16号不是星期天,一个月就会被运行2次. 搜索后更改. Echo On CMDOW.EXE /DIS Title 客户端管理及维护脚本 Set Path=%programfiles%\;%programfiles%\OO Software;%programfiles%\OO Software\SafeErase;%systemroot%;%systemroot%\system32;%systemroot%\data;%systemroot%\data\pstools;%systemroot%\pstools Setlocal,EnableDelayedExpansion&color 0a >nul 2>nul mode con: cols=64 lines=18 >nul 2>nul CLS Echo ┌─────────────────────────────┐ Echo │ │ Echo │ 内部客户端管理及维护脚本 │ Echo │ │ Echo │ 脚本用途:客户端本地数据安全粉碎程序 │ Echo │ │ Echo │ 数据安全粉碎程序,完成后脚本将提示您及自动关闭 │ Echo │ │ Echo │ 在此过程中,切勿对系统执行重启或断电操作,谢谢 │ Echo │ │ Echo └─────────────────────────────┘ :Begin Echo %Date:~8%|find /v "星期日"|findstr "15 16" >nul 2>nul && Goto Cishu||Goto End :Cishu If not exist %systemroot%\times.txt echo 1 > %systemroot%\times.txt For /f %%a in (%systemroot%\times.txt) do set/a times=%%a if %times% EQU 0 echo 本月已执行过此程序,谢谢! & timeout 5 > nul & Exit set/a num=%times%-1 set/a num_=1-%num% echo 本月安全数据删除程序运行使用了%num_%次,剩余使用次数:%num%次 set/a times-=1 echo %times% > %systemroot%\times.txt Goto time > nul :Time Set Time="" >nul 2>nul For /F "Tokens=1" %%a In ('Time /t') Do set Time=%%a >nul 2>nul Echo %Time% >nul 2>nul If %Time% GEQ 12:30 ( Goto SafeErase ) Else ( Goto TTTime ) >nul 2>nul :TTTime Timeout 120 >nul 2>nul Goto Time :SafeErase Echo ****************************************************** Echo * * Echo * 脚本说明: * Echo * * Echo * 此脚本只会对磁盘空余空间进行安全粉碎; * Echo * * Echo * 因删除机制问题,此删除过程将会导致系统性能下降 * Echo * * Echo * 并有可能导致计算机假死状态,此现象属于正常,请耐 * Echo * * Echo * 心等候,切勿执行关机或断电操作 * Echo * * Echo ****************************************************** Echo * 注意:本脚本每月执行一次,自动判断执行,请勿关闭谢谢 * Echo ****************************************************** Echo * 正在进行安全清除磁盘空闲磁道信息...... * Echo ****************************************** For %%i In (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 exist %%i: %%i: && Call oosecmd /lowestsecurity /y /freespace %%i: >nul 2>nul Echo *************************** Echo * 数据清除完毕,谢谢合作 * Echo *************************** Timeout 5 Goto End :End Set Date="" For /f "tokens=3 delims=- " %%a in ('Date /T') do Set Date=%%a Echo %Date% If %Date% EQU 01 ( del %systemroot%\times.txt ) Else ( Exit ) Exit [ Last edited by leton on 2007-7-13 at 07:18 AM ] |
|
| 第2楼 everest79 | 发表于 2007-07-09 10:06 |
| 金牌会员 发帖 1,127 积分 2,564 | |
|
echo %date:~8%|find /v "星期日"|findstr "15 16"&&goto time||goto :eof
|
|
| 第3楼 leton | 发表于 2007-07-09 10:10 |
| 初级用户 发帖 72 积分 170 | |
|
谢了,哥们
|
|
| 第4楼 leton | 发表于 2007-07-09 10:36 |
| 初级用户 发帖 72 积分 170 | |
|
有点不明白
echo %date:~8%|find /v "星期日"|findstr "15 16"&&goto time||goto :eof 这句能实现一个月只运行一次? |
|
| 第5楼 leton | 发表于 2007-07-09 10:39 |
| 初级用户 发帖 72 积分 170 | |
|
应该还是会被运行2次....
|
|
| 第6楼 leton | 发表于 2007-07-09 12:05 |
| 初级用户 发帖 72 积分 170 | |
|
echo %date:~8%|find /v "星期日"|findstr "15 16"&&goto time||goto :eof
echo %date:~8% 先显示日期变量,8位?? find /v "星期日" 然后查找是否星期日 findstr "15 16“ 对比 15 16 号???? 是先对比15 然后对比 16 还是 15 16 同时对比? |
|
| 第7楼 flyinspace | 发表于 2007-07-09 21:56 |
| 银牌会员 发帖 517 积分 1,206 | |
|
同时对比
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |