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



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

@echo off
shutwdown -a
pushd "C:Program FilesAlwil SoftwareAvast4"
cls
echo --------------------------------------------------------------
echo Bezig met scannen, de computer wordt automatisch uitgezet...
echo --------------------------------------------------------------
aswcmd C: /m /*
popd "C:Program FilesAlwil SoftwareAvast4"
shutdown -s

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

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

提前感谢,

您可以使用以下批处理脚本:

@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变量顺序。

这应该可以完成

If WeekdayName(Weekday(Date))="Wednesday" Then
 Dim shell
 Set shell=createobject("wscript.shell")
 shell.run "C:Documents and SettingsAmolDesktopTempShutdown.bat"
 set shell=Nothing
End If  

与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 ....

此外,您还可以使用"现在"代替"日期"。不同的是,现在包括一天中的当前时间,其中Date总是将日期时间值的该部分清零。如果将日期时间变量以数字形式视为双精度,则整数部分为日期,时间为余数。所以日期基本上是Int(Now),也就是午夜,当那一天开始的时候。如果您发现为简单增量调用DateAdd()过多,也可以说Tomorrow=Date+1。

感谢4M01

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

If WeekdayName(Weekday(date)) = "woensdag" Then
 Dim shell
 Set shell=createobject("wscript.shell")
 shell.run """C:Documents and SettingstestDesktopscan.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 SettingstestDesktopscan.bat"""
 set shell=Nothing
End If

最新更新