Jump to content

Continue to write _FileWriteLog after system restart


Recommended Posts

I have the below function set for log files inside my code using it at multiple locations.

I wanted to continue the log file after Step 6 when the computer restarts.

Local $log = 0

Func LogFilePath()
    If $log = 0 Then
        $GetLog = "C:\Temp\Test\Test.log"
        _FileCreate($GetLog)
          If FileExists($GetLog) Then
            ; Log Line 1
            ; Log Line 2
            ; Log Line 3
            ; Log line 4
        EndIf
        $log = 1
    EndIf
EndFunc

; Write some functions here...
; Step 1
LogFilePath()
_FileWriteLog($GetLog, "Line 5")
; Step 2
LogFilePath()
_FileWriteLog($GetLog, "Line 6")
; Reboot
; Want to continue the log lines after line 6.

 

Link to comment
Share on other sites

You need to save the status of your script in a location that survives the reboot (Ini-file, registry ...).
First step in your script is then to check and reset this state. You then call your functions depending on the state.

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download
Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki
PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki
Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki

Standard UDFs:
Excel - Example Scripts - Wiki
Word - Wiki

Tutorials:
ADO - Wiki
WebDriver - Wiki

 

Link to comment
Share on other sites

I you use FileOpen with mode = 1 then it will always append to end of your file something like:

#include <File.au3>

OnAutoItExitRegister("_LogClose")

Global $hLogFile, $sLogFile, $bLog = False
LogFilePath()

Func LogFilePath()
    If $bLog = False Then
        $sLogFile = EnvGet("SystemDrive") & "\Temp\Test\Test.log"
        $hLogFile = FileOpen($sLogFile, 9) ;~ Create Folder/File and append to end of file if it already exists
        If $hLogFile > -1 Then
            _FileWriteLog($sLogFile, "Line 1")
            _FileWriteLog($sLogFile, "Line 2")
            _FileWriteLog($sLogFile, "Line 3")
            _FileWriteLog($sLogFile, "Line 4")
            $bLog = True
        EndIf
    EndIf
EndFunc

; Step 1 Function
;~ Check if Step 1 has been completed
If FileExists(@ProgramFilesDir & "\Filepath1\Filename1.exe") = 0 Then
    ;~ Run Step 1 Installer here
    RunWait('MsiExec.exe /i "' & @ScriptDir & '\FileName1.msi" /qb /norestart')
    If $bLog = True Then _FileWriteLog($sLogFile, "Step 1 Completed")
EndIf

; Step 2 Function
If RegRead("HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\{Guid}", "DisplayName") = "" Then
    ;~ Run Step 2 Installer here
    RunWait('MsiExec.exe /i "' & @ScriptDir & '\FileName2.msi" /qb /norestart')
    If $bLog = True Then _FileWriteLog($sLogFile, "Step 2 Completed")
EndIf

; Reboot
; Step 3 Function
; Want to continue the log lines after line 6.

Func _LogClose()
    FileClose($hLogFile)
    Exit
EndFunc

 

Link to comment
Share on other sites

Example:

#include <MsgBoxConstants.au3>

Global $iState = Number(IniRead(@ScriptDir & "\State.ini", "State", "State", 0))

; Step 1
If $iState < 1 Then
    $iState += 1
    MsgBox(0, "", "Executing Step " & $iState)
    IniWrite(@ScriptDir & "\State.ini", "State", "State", $iState)
    If MsgBox($MB_YESNO, "Step " & $iState, "Should I exit the script here?") = 6 Then Exit
EndIf

; Step 2
If $iState < 2 Then
    $iState += 1
    MsgBox(0, "", "Executing Step " & $iState)
    IniWrite(@ScriptDir & "\State.ini", "State", "State", $iState)
    If MsgBox($MB_YESNO, "Step " & $iState, "Should I exit the script here?") = 6 Then Exit
EndIf

; Step 3
If $iState < 3 Then
    $iState += 1
    MsgBox(0, "", "Executing Step " & $iState)
    IniWrite(@ScriptDir & "\State.ini", "State", "State", $iState)
    If MsgBox($MB_YESNO, "Step " & $iState, "Should I exit the script here?") = 6 Then Exit
EndIf

; Step 4
If $iState < 4 Then
    $iState += 1
    MsgBox(0, "", "Executing Step " & $iState)
    IniWrite(@ScriptDir & "\State.ini", "State", "State", $iState)
    If MsgBox($MB_YESNO, "Step " & $iState, "Should I exit the script here?") = 6 Then Exit
EndIf

; Step 5
If $iState < 5 Then
    $iState += 1
    MsgBox(0, "", "Executing Step " & $iState)
    IniWrite(@ScriptDir & "\State.ini", "State", "State", $iState)
    If MsgBox($MB_YESNO, "Step " & $iState, "Should I exit the script here?") = 6 Then Exit
EndIf

; Step 6
If $iState < 6 Then
    $iState += 1
    MsgBox(0, "", "Executing Step " & $iState)
    IniWrite(@ScriptDir & "\State.ini", "State", "State", $iState)
    If MsgBox($MB_YESNO, "Step " & $iState, "Should I exit the script here?") = 6 Then Exit
EndIf

 

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download
Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki
PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki
Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki

Standard UDFs:
Excel - Example Scripts - Wiki
Word - Wiki

Tutorials:
ADO - Wiki
WebDriver - Wiki

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...