windows - brug for et shutdown script: Check dato, hvis onsdag kører batch script

Indlæg af Hanne Mølgaard Plasc

Problem



Vi bruger avast adnm 4.8 og det har ingen afbrydelsesfunktion.
 Jeg har lavet et batch script til at køre Avast ved at lukke ned.


@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


Men jeg vil kun scanne computere på onsdag. Så hvis dens ikke onsdag computere skal lukke uden scanning.


Jeg har brug for et VBscript for at kontrollere den aktuelle dato og kalde batch scriptet, hvis det er onsdag og fortsæt med at lukke på andre dage. Jeg vil bruge dette script som shutdown script. Hvis det er muligt med et batch script er det også fint.


Tak på forhånd,

Bedste reference


Dette burde gøre tricket


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  

Andre referencer 1


Det kan du gøre med dette Batch-script:


@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-variablen har en værdi mellem 0 (søndag) og 6 (lørdag). Hvis dit datoformat ikke er MM/DD/ÅÅÅÅ, skal du ændre MM, DD og YY-variablernes rækkefølge i FOR/SET-kommandoen i overensstemmelse hermed.

Andre referencer 2


Det er altid bedre at sammenligne med Ugedag () og kun bruge WeekdayName () til visningsformål.


Heldigvis er der et globalt system enum, der allerede kortlægger alle Weekday () s numeriske værdier til dagen i ugen, navnekonstanter, der kan læses i dit lokale installations sprog. Jeg forestiller mig, at din installation tilbyder en vbWoensdag konstant. Ellers har vi fremtidige programmører går hvad er de 4 her for?


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

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


Den korrekte måde at skrive testen på ville være


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


Også du kan altid bruge Nu i stedet for Dato. Forskellen er Nu inkluderer den aktuelle tid på dagen, hvor Dato altid nulstiller den del af datetime-værdien. Hvis du ser en datetime variant numerisk som en dobbelt, er heltaldelen datoen, og tiden er resten. Så Dato er stort set Int (Nu), hvilket er midnat, når den dag begynder. Du kan også sige Tomorrow=Date + 1, hvis du finder opkald DateAdd () for en simpel forøgelse.

Andre referencer 3


Takket være 4M01


1) Dette script fungerer kun på nederlandske Windows: (Skift 'woensdag' til dit eget sprog, f.eks. Onsdag, hvis du bruger engelske vinduer. Det er sagerfølsomt)


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


2) Dette script fungerer med flere sprog Windows. (Du skal finde dagens dag nummer. I dette tilfælde var onsdag nummer 4)


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