26. juni 2008 - 21:10 Der er 10 kommentarer og
1 løsning

CMD/BAT fil - forskellige hændelse afhængig af lige/Ulige UGENUMM

CMD/BAT fil - forskellige hændelse afhængig af lige/Ulige UGEnummer...

Forstået på den måde at ved kørsel af *.CMD programet skal der ske én ting (i første omgang en echo besked) på LIGE UGETAL og en anden ting (i første omgang en echo besked) på ULIGE UGETAL !!!

Der må ikke bruges 3. parts program eller andet hjemmelavet til dette trix.

Hvad ka' I byde på ???
Avatar billede arne_v Ekspert
26. juni 2008 - 21:22 #1
CMD/BAT lyder ret håbløst til det.

Hvorfor ikke bruge VBS ? Jeg kan ikke forestille mig en Windows idag uden mulighed
for VBS.

Hvis vi snakker brand nyt (2008), så er der jo også PowerShell, men ...
26. juni 2008 - 21:43 #2
Til 'nød' må *.VBS gerne bruges, men det skal på en eller anden måde 'kaldes' fra en *.CMD/BAT fil da jeg skal bygge noget mere på derfra...

PS: Skal helst også virke på Wintendo'98 *S*
Avatar billede arne_v Ekspert
26. juni 2008 - 22:36 #3
Function WeekNumber(year, mon, day)
    Dim a, y, m, JD, d4, L, d1
    a = (14 - mon) \ 12
    y = year + 4800 - a
    m = mon + 12 * a - 3
    JD = day + (153 * m + 2) \ 5 + 365 * y + y \ 4 - y \ 100 + y \ 400 - 32045
    d4 = (((JD + 31741 - JD Mod 7) Mod 146097) Mod 36524) Mod 1461
    L = d4 \ 1460
    d1 = ((d4 - L) Mod 365) + L
    WeekNumber = d1 \ 7 + 1
End Function


today = Date()
d = Day(today)
m = Month(today)
y = Year(today)
w = WeekNumber(y,m,d)
If w Mod 2 = 0 Then
    WScript.Echo "Vi er i en lige uge"
Else
    WScript.Echo "Vi er i en ulige uge"
End If

er ihverfald en start !
Avatar billede arne_v Ekspert
26. juni 2008 - 22:44 #4
Modificeret:

Function WeekNumber(year, mon, day)
    Dim a, y, m, JD, d4, L, d1
    a = (14 - mon) \ 12
    y = year + 4800 - a
    m = mon + 12 * a - 3
    JD = day + (153 * m + 2) \ 5 + 365 * y + y \ 4 - y \ 100 + y \ 400 - 32045
    d4 = (((JD + 31741 - JD Mod 7) Mod 146097) Mod 36524) Mod 1461
    L = d4 \ 1460
    d1 = ((d4 - L) Mod 365) + L
    WeekNumber = d1 \ 7 + 1
End Function


today = Date()
d = Day(today)
m = Month(today)
y = Year(today)
w = WeekNumber(y,m,d)
Set shell=CreateObject("WScript.Shell")
If w Mod 2 = 0 Then
    WScript.Echo "Vi er i en lige uge"
    shell.Run "week.bat lige"
Else
    WScript.Echo "Vi er i en ulige uge"
    shell.Run "week.bat ulige"
End If
Set shell = Nothing
Avatar billede frand Nybegynder
26. juni 2008 - 23:00 #5
DatePart("ww", Now)

burde gøre det samme som arne's WeekNumber
Avatar billede cool_m_f Nybegynder
26. juni 2008 - 23:28 #6
@ frand:
giver den ikke forkert uge ved uge 52/53/1 ligesom f.eks i excel
Avatar billede arne_v Ekspert
27. juni 2008 - 02:32 #7
netop !
27. juni 2008 - 06:36 #8
Ser lovende ud - checker i løbet af Weekenden ...
01. juli 2008 - 20:37 #9
(Skal lige checke hvordan den gør i næste uge *S*)

<arne_v>: Under alle omstændigheder - læg [svar]...
Avatar billede arne_v Ekspert
01. juli 2008 - 20:40 #10
svar
08. juli 2008 - 20:42 #11
Det virker fin. Den bygger jeg videre på ...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester