标题: 如何将 日期 跟 时间判断做在一起?(已解决)
[打印本页]
作者: leton
时间: 2007-7-9 09:43
标题: 如何将 日期 跟 时间判断做在一起?(已解决)
@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 ]
作者: everest79
时间: 2007-7-9 10:06
echo %date:~8%|find /v "星期日"|findstr "15 16"&&goto time||goto :eof
作者: leton
时间: 2007-7-9 10:10
谢了,哥们
作者: leton
时间: 2007-7-9 10:36
有点不明白
echo %date:~8%|find /v "星期日"|findstr "15 16"&&goto time||goto :eof
这句能实现一个月只运行一次?
作者: leton
时间: 2007-7-9 10:39
应该还是会被运行2次....
作者: leton
时间: 2007-7-9 12:05
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 同时对比?
作者: flyinspace
时间: 2007-7-9 21:56
同时对比