需要关闭脚本:如果星期三运行批处理脚本,请检查日期

时间:2012-03-06 13:14:41

标签: windows vbscript batch-file shutdown

我们使用avast adnm 4.8,它没有关机扫描选项。  我已经制作了一个批处理脚本来关闭时运行Avast。

@echo off
shutwdown -a
pushd "C:\Program Files\Alwil Software\Avast4"

cls

echo --------------------------------------------------------------

echo Bezig met scannen, de computer wordt automatisch uitgezet...

echo --------------------------------------------------------------

aswcmd C: /m /*

popd "C:\Program Files\Alwil Software\Avast4"

shutdown -s

但我只想在星期三扫描电脑。因此,如果不是星期三计算机必须在没有扫描的情况下关闭。

我需要一个VBscript来检查当前日期并调用batchscript,如果它是在周三并且在其他日子继续关闭。我想将此脚本用作关闭脚本。如果可以使用批处理脚本也可以。

提前致谢,

4 个答案:

答案 0 :(得分:2)

您可以使用此批处理脚本执行此操作:

@ECHO OFF
FOR /F "TOKENS=1-3 DELIMS=/" %%A IN ("%DATE%") DO SET /A MM=10%%A %% 100, DD=10%%B %% 100, YY=%%C
IF %MM% LSS 3 SET /A MM+=12, YY-=1
SET /A A=YY/100, B=A/4, C=2-A+B, E=36525*YY/100, F=306*(MM+1)/10, DOW=(C+DD+E+F-3)%%7
IF NOT %DOW% == 3 GOTO SHUTDOWN
ECHO TODAY IS WEDNESDAY, SCAN HERE...
:SHUTDOWN
ECHO SHUTDOWN HERE...

DOW变量的值介于0(星期日)和6(星期六)之间。如果您的日期格式不是MM / DD / YYYY,请相应地更改FOR / SET命令中的MM,DD和YY变量顺序。

答案 1 :(得分:1)

这应该可以解决问题

If WeekdayName(Weekday(Date))="Wednesday" Then
 Dim shell
 Set shell=createobject("wscript.shell")
 shell.run "C:\Documents and Settings\Amol\Desktop\Temp\Shutdown.bat"
 set shell=Nothing
End If  

答案 2 :(得分:1)

与Weekday()进行比较总是更好,只使用WeekdayName()进行显示。

幸运的是,有一个全局系统枚举已经将所有Weekday()的数值映射到Windows安装的本地语言中可读的星期几名称常量。我想你的安装提供了一个vbWoensdag常量。否则我们会让未来的程序员在这里找到4个人吗?

Weekday() will return one of the following constant values:

vbSunday    1
vbMonday    2
vbTuesday   3
vbWednesday 4
vbThursday  5
vbFriday    6
vbSaturday  7

编写测试的正确方法是

If Weekday(date) = vbWednesday Then ....

此外,您始终可以使用“现在”代替“日期”。区别在于Now包括当前时间,其中Date始终将日期时间值的该部分归零。如果以数字方式将datetime变量视为double,则整数部分是日期,时间是余数。所以Date基本上是Int(Now),那是午夜,当那天开始。如果你发现调用DateAdd()过多的简单增量,你也可以说Tomorrow = Date + 1。

答案 3 :(得分:0)

感谢4M01

1)此脚本仅适用于荷兰语Windows :(将“woensdag”更改为您自己的语言,例如,如果您使用英语窗口则更改为星期三。它区分大小写)

If WeekdayName(Weekday(date)) = "woensdag" Then
 Dim shell
 Set shell=createobject("wscript.shell")
 shell.run """C:\Documents and Settings\test\Desktop\scan.bat"""
 set shell=Nothing
End If

2)此脚本适用于多语言Windows。 (你必须找到一周的天数。在这种情况下,星期三是4号)

If Weekday(date) = "4" Then
 Dim shell
 Set shell=createobject("wscript.shell")
 shell.run """C:\Documents and Settings\test\Desktop\scan.bat"""
 set shell=Nothing
End If