# Script di installazione in macchina zip dell'ultima release di ThermoActive # Check parameters Param ( [Parameter(Mandatory=$True)] [ValidateNotNull()] $zipPath ) # recupera timestamp x logging function Get-TimeStamp { return "[{0:MM/dd/yy} {0:HH:mm:ss}]" -f (Get-Date) } # registra log! function DoLog($txt2log) { Write-Output "$(Get-TimeStamp) $txt2log" | Out-File c:\tmp\Script.log -Append } function checkFolder($dirPath) { if(!(Test-Path -path $dirPath)) { New-Item -ItemType directory -Path $dirPath DoLog("Folder path has been created successfully at $dirPath") } } Write-Output "-------------------------------- START script --------------------------------" | Out-File c:\tmp\Script.log $StopWatch = New-Object System.Diagnostics.Stopwatch $StopWatch.Start() # directory di base $BaseDir = "C:\CMS" $ArchiveDir = "$BaseDir\Archive" $BackupDir = "$BaseDir\Backup" $ConfDir = "$BaseDir\Conf" $LogDir = "$BaseDir\Logs" $UnzipDir = "$BaseDir\Unzip" $ProgramDir = "$BaseDir\ThermoActive" $adesso = Get-Date -Format "yyyy.MM.dd_HH.mm" # mi sposto in Dir di base cd $BaseDir # creo se non ci fosse dir varie checkFolder($BaseDir) checkFolder($ArchiveDir) checkFolder($BackupDir) checkFolder($ConfDir) checkFolder($LogDir) checkFolder($UnzipDir) checkFolder($ProgramDir) # Salvo CONF varie robocopy $ProgramDir"\Config\" $BackupDir"\Config\" /MIR /Z /LOG:$LogDir"\Config.1.log" robocopy $ProgramDir"\Dict\" $BackupDir"\Dict\" /MIR /Z /LOG:$LogDir"\Dict.1.log" robocopy $ProgramDir"\Recipes\" $BackupDir"\Recipes\" /MIR /Z /LOG:$LogDir"\Recipes.1.log" robocopy $ProgramDir"\TMP\" $BackupDir"\TMP\" /MIR /Z /LOG:$LogDir"\Tmp.1.log" # Move versione attuale Move-Item -Path $ProgramDir -Destination $ArchiveDir"\ThermoActive_$adesso" # Faccio unzip NUOVA versione Expand-Archive -Path $zipPath -DestinationPath $UnzipDir -Force # Move da ZIP a program Move-Item -Path $UnzipDir -Destination $ProgramDir #robocopy $UnzipDir $ProgramDir /MIR /Z /LOG:$LogDir+"Newversion.log" /XD "Config Dict Recipes" # Ripristino CONF robocopy $BackupDir"\Config\" $ProgramDir"\Config\" /MIR /Z /LOG:$LogDir"\Config.2.log" robocopy $BackupDir"\Dict\" $ProgramDir"\Dict\" /MIR /Z /LOG:$LogDir"\Dict.2.log" robocopy $BackupDir"\Recipes\" $ProgramDir"\Recipes\" /MIR /Z /LOG:$LogDir"\Recipes.2.log" robocopy $BackupDir"\TMP\" $ProgramDir"\TMP\" /MIR /Z /LOG:$LogDir"\Tmp.2.log" $StopWatch.Stop() $StopWatch.Elapsed | Out-File $LogDir"\Install.log" -Append DoLog("-------------------------------- END script --------------------------------")