Winbatch Schript in AutoIt Script umwandeln

  • wie kann ich dieses WINBATCHScript in ein Autoit Script umsetzen ?

    Spoiler anzeigen


    ;-Time.wbt------------------------------------------------------------------------;
    ; Sicherung des Beginndatums in einer TMP Datei ;
    ;---------------------------------------------------------------------------------------;

    ;-Errechnung des Belegdatums----------------------------------------------------------------------------;
    ;Errechnung des Wochentags
    a=TimeYmdHms( )
    ;Korrektur des Datums aufgrund Batchbeginn am nächsten Tag;
    ;a=TimeSubtract(a, "0000:00:01:00:00:00")
    ;message ("Zeit", a);
    b=TimeJulianDay(a)
    c=(b+5) mod 7
    Wochentag = ItemExtract(c+1, "SON MON DIE MIT DON FRE SAM", " ")

    ;Errechnung des Beginndatum
    If Wochentag == "SON" THEN
    newtime=TimeSubtract(a, "0000:00:00:48:00:00")
    Jahr = StrSub(newtime, 1, 4)
    Monat = StrSub(newtime, 6, 2)
    Tag = StrSub(newtime, 9, 2)
    Beginndatum = StrCat(Tag,".",Monat,".",Jahr)
    Delay(1)
    else
    newtime=TimeSubtract(a, "0000:00:00:00:00:00")
    Jahr = StrSub(newtime, 1, 4)
    Monat = StrSub(newtime, 6, 2)
    Tag = StrSub(newtime, 9, 2)
    Beginndatum = StrCat(Tag,".",Monat,".",Jahr)
    Delay(1)
    Endif

    ;Errechnung des Enddatum
    newtime=TimeSubtract(a, "0000:00:00:00:00:00")
    Jahr = StrSub(newtime, 1, 4)
    Monat = StrSub(newtime, 6, 2)
    Tag = StrSub(newtime, 9, 2)
    Enddatum = StrCat(Tag,".",Monat,".",Jahr)
    Delay(1)

    ;Errechnung des Feiertagdatums
    Feiertag = ""
    Feiertagflag = "NEIN"

    ;message ("Beginndatum", Beginndatum);
    ;message ("Enddatum", Enddatum);


    fHandle = FileOpen("\WBTfiles\Feiertag.txt", "READ")
    While @TRUE
    Feiertag = FileRead(fHandle)
    If Feiertag == "*EOF*" Then Break
    ClipPut(Feiertag)
    If Feiertag == ";Deaktivierung des Beginn/Enddatum" then
    Beginndatum = FileRead(fHandle)
    Feiertagflag = "JA"
    Enddatum = FileRead(fHandle)
    Endif
    Endwhile
    FileClose(fHandle)


    ;-Sicherung in einer TMP Datei-------------------------------------------------------------------------------;
    handle = FileOpen("\Time.tmp", "WRITE")
    FileWrite(handle, Beginndatum)
    FileWrite(handle, Enddatum)

    If Feiertagflag == "NEIN" then
    FileWrite(handle, Wochentag)
    Endif

    If Feiertagflag == "JA" then
    FileWrite(handle, "Das Beginn/Enddatum wurde aus der Datei Feiertag.txt ausgelesen.")
    Endif
    FileClose(handle)


    Return


    Ich will die Firma vom Winbatch script abbringen ( ZU TEUER!!!!!!!, zu langsam, unhandlich, kein Compiler) und AutoI3 Scripte einführen,

    da ich ein neuling (Jungspund in Sachen scripten) bin, brauch ich eure Hilfe.
    Ich hab einfache scripts schon umgesetzt aber komplizierte und Komplexe sind noch etwas undurchsichtig ..... Ich brauch leider erst ein paar beispiele um es wirklich zu lernen (behirnen) .......

    Danke für eure Hilfe
    TOM

  • Dieses Script setzt einen TimeStamp für eine Datenüberleitung.

    d.H.
    wenn Dienstag die Verarbeitung war setzt er den TimeStamp auf Montag (Die Montag Daten sollen übergeleitet werden)
    Mo --> Fr - Sa - So
    Di --> Mo
    Mi --> Di
    Do --> Mi
    Fr --> Do


    wenn Montag die Überleitung Ist dann soll er die Daten von Fr. bis Sonntag Überleiten

    diese Daten brauchen wir für ein Journal export

    • Offizieller Beitrag

    Hallo!

    So wie ich das sehe ist das was in der WBT-Datei steht nicht 100% das was du beschrieben hast. Intessant wäre noch zu wissen was steht in der Feiertag.txt, wann läuft das Script?

    Ich habe es mal versucht umzusetzen (ohne gewähr!):

    [autoit]

    ;- Umsetzung der WBT-Datei in AutoIt ------------------------------------------
    #include <Date.au3>

    [/autoit][autoit][/autoit][autoit]

    Global Const $strTagName[8] = ["", "SON", "MON", "DIE", "MIT", "DON", "FRE", "SAM"]
    Global $blFeiertagFlag = False

    [/autoit][autoit][/autoit][autoit]

    ;- Errechnung des Beginndatum -------------------------------------------------
    $strWochentag = $strTagName[@WDAY]

    [/autoit][autoit][/autoit][autoit]

    if $strWochentag = "MON" Then
    $newtime = _DateAdd("D", -3, _NowCalc())
    Else
    $newtime = _DateAdd("D", -1, _NowCalc())
    EndIf

    [/autoit][autoit][/autoit][autoit]

    $strBeginDatum = _DateTimeFormat( $newtime,2)
    ;- Errechnung des Endedatum ---------------------------------------------------
    $strEndDatum = _DateTimeFormat( _NowCalc(),2)

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    ;- Errechnung des Feiertagdatums ----------------------------------------------
    If FileExists("\WBTfiles\Feiertag.txt") Then
    $handle = FileOpen("\WBTfiles\Feiertag.txt", 0)
    While 1
    $Feiertag = FileReadLine($handle)
    If @error Then ExitLoop
    ClipPut($Feiertag) ; in der Zwischenablage ablegen, warum ? (steht auch so in WBT)
    If $Feiertag = ";Deaktivierung des Beginn/Enddatum" Then
    $strBeginDatum = FileReadLine($handle)
    $strEndDatum = FileReadLine($handle)
    $blFeiertagFlag = True
    EndIf
    WEnd
    FileClose($handle)
    EndIf

    [/autoit][autoit][/autoit][autoit]

    ;- Sicherung in einer TMP Datei -----------------------------------------------
    $handle = FileOpen("\Time.tmp", 2)
    FileWriteLine($handle,$strBeginDatum)
    FileWriteLine($handle,$strEndDatum)

    [/autoit][autoit][/autoit][autoit]

    If $blFeiertagFlag = False Then
    FileWriteLine($handle,$strWochentag)
    Else
    FileWriteLine($handle, "Das Beginn/Enddatum wurde aus der Datei Feiertag.txt ausgelesen.")
    EndIf

    [/autoit][autoit][/autoit][autoit]

    FileClose($handle)

    [/autoit]
  • Das steht in der Feiertag.TXT drinnen

    [autoit]

    ;Aktivierung des Beginn/Enddatum
    Deaktivierung des Beginn/Enddatum
    14.08.2006
    15.08.2006

    [/autoit]

    Ich würde aber gerne alle österreichischen Feiertage in diese Feiertag.TXT reintun da der Vergessensfaktor bei uns in der Abteilung sehr hoch ist


    lg

  • Hi du,

    dieses script ist ein teil eines anderen scriptes.

    so das haupt script:

    Spoiler anzeigen
    [autoit]


    ;-FAIRCOMS.WBT--------------------------------------------------------------------------;
    ; ;
    ; Die FAIRCOMS Datenbank auf dem JACK1 Server wird vor der NT Sicherung (NTBACKUP) ;
    ; beendet. Nach der Sicherung wird die Datenbank wieder gestartet. ;
    ; ;
    ;---------------------------------------------------------------------------------------;

    [/autoit] [autoit][/autoit] [autoit]

    RunWait(Environment("COMSPEC"), "/c echo START BATCH VERARBEITUNG >>D:\Jack1.log")
    RunWait(Environment("COMSPEC"), "/c time /T >>D:\Jack1.log")

    [/autoit] [autoit][/autoit] [autoit]

    DirChange("D:")

    [/autoit] [autoit][/autoit] [autoit]

    ;-Time.wbt-------------------------------------------------------------------------------;
    Call("\WBTFiles\Time.wbt", 0)

    [/autoit] [autoit][/autoit] [autoit]

    ;-CopyJackEnd.bat------------------------------------------------------------------------;
    RunWait(Environment("COMSPEC"), "/c echo CopyJackEnd >>D:\Jack1.log")
    RunWait(Environment("COMSPEC"), "/c time /T >>D:\Jack1.log")
    RunWait("\CopyJackEnd.bat","")
    Delay(900)
    ;Delay(15)

    ;-DeleteJackEnd.bat----------------------------------------------------------------------;
    RunWait(Environment("COMSPEC"), "/c echo DeleteJackEnd.bat >>D:\Jack1.log")
    RunWait(Environment("COMSPEC"), "/c time /T >>D:\Jack1.log")
    RunWait("\DeleteJackEnd.bat","")
    Delay(15)

    [/autoit] [autoit][/autoit] [autoit]

    ;-FileDelete.wbt-------------------------------------------------------------------------;

    [/autoit] [autoit][/autoit] [autoit]

    Call("\WBTFiles\FileDelete.wbt", 0)

    [/autoit] [autoit][/autoit] [autoit]

    WinActivate("FAIRCOMS - FairCom")
    Delay(5)
    SendKey("!c")
    Delay(5)
    SendKey("s")
    Delay(5)
    ;-Administrator User-------------------------------------------------------------------;
    ClipPut("ADMIN")
    SendKey("^v")
    Delay(5)
    ;-Password-----------------------------------------------------------------------------;
    SendKey("{TAB}")
    Delay(5)
    ClipPut("******")
    Delay(5)
    SendKey("^v")
    Delay(5)
    SendKey("{Enter}")
    Delay(5)
    SendKey("{Enter}")

    [/autoit] [autoit][/autoit] [autoit]

    Delay(30)

    [/autoit] [autoit][/autoit] [autoit]

    If WinExist("FairCom") == @TRUE
    Delay(5)
    SendKey("!c")
    Delay(5)
    SendKey("s")
    Delay(5)
    ClipPut("ADMIN")
    Delay(5)
    SendKey("^v")
    Delay(5)
    SendKey("{Enter}")
    Delay(5)
    SendKey("{TAB}")
    Delay(5)
    SendKey("{Enter}")
    Delay(30)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Delay(30)

    [/autoit] [autoit][/autoit] [autoit]

    ;-Rebuild-------------------------------------------------------------------------------;

    [/autoit] [autoit][/autoit] [autoit]

    ;Call("\WBTFiles\Rebuild_01.wbt", 0)
    ;---------------------------------------------------------------------------------------;
    RunWait("\WBTFiles\Save_NACH_Rebuild.bat","")
    Delay(15)
    ;---------------------------------------------------------------------------------------;
    RunWait("\WBTFiles\Säuberung v JackDat.bat","")
    ;---------------------------------------------------------------------------------------;
    ;-MIS-Übernahme OHNE FAIRCOMS - Datenbank-----------------------------------------------;
    Call("\WBTFiles\MIS.wbt", 0)
    ;---------------------------------------------------------------------------------------;
    ;-tägliches Saldenerneuern und Komplettrebuild -----------------------------------------;
    Call("\WBTfiles\Salden_Rebuild\Salden_Rebuild.wbt", 0)
    ;---------------------------------------------------------------------------------------;
    Delay(10)
    DirChange("\JackDat")
    Delay(5)
    Run("Ctsrvr.exe","")
    Delay(20)
    Run("\WBTfiles\SendSMS.exe", "")
    ;---------------------------------------------------------------------------------------;
    RunWait(Environment("COMSPEC"), "/c echo ENDE BATCH VERARBEITUNG >>D:\Jack1.log")
    RunWait(Environment("COMSPEC"), "/c time /T >>D:\Jack1.log")

    [/autoit] [autoit][/autoit] [autoit]

    Return

    [/autoit]


    so vielcith kann dir das weiter helfen

    das Script macht die nächtlichen Wartungsarbeiten bei unserem Jack (Reisebüroverwaltungsprogramm)

    lg