Update to 2.4.0

This commit is contained in:
Frank Bischof 2023-03-23 10:48:00 +01:00
parent 4751ce1bc3
commit 7b6aabeabd
2 changed files with 30 additions and 7 deletions

View File

@ -1,13 +1,12 @@
# 7zip_to_netapp_v2.ps1 # 7zip_to_netapp_v2.ps1
# Author: F. Bischof (frank@meer-web.nl) # Author: F. Bischof (frank@meer-web.nl)
# Version 2.2.0 # Version 2.4.0
# Set global vars # Set global vars
$TIMESTAMP = Get-Date -Format "yyyyMMddHHmm" $TIMESTAMP = Get-Date -Format "yyyyMMddHHmm"
$TARGET_FILENAME = "${TIMESTAMP}-archive.7z" $TARGET_FILENAME = "${TIMESTAMP}-archive.7z"
$CSV = "C:\Scripts\compress and move\dfs04zip.csv" $CSV = "C:\Scripts\compress and move\dfs04zip.csv"
$LOGFILE = "C:\Scripts\compress and move\$TIMESTAMP.log" $LOGFILE = "C:\Scripts\compress and move\$TIMESTAMP.log"
write-host "===========================STARTING ARCHIVE==========================="
# Writelog function # Writelog function
if (!(test-path $LOGFILE)) { if (!(test-path $LOGFILE)) {
@ -20,7 +19,7 @@ function WRITELOG {
Add-content $LOGFILE -value $LOGMESSAGE Add-content $LOGFILE -value $LOGMESSAGE
Write-Host "${LOGMESSAGE}" Write-Host "${LOGMESSAGE}"
} }
WRITELOG "Archiving started" WRITELOG "=========================== Archiving started ==========================="
# Check if CSV file exists # Check if CSV file exists
if (test-path $CSV) { if (test-path $CSV) {
@ -32,6 +31,11 @@ if (test-path $CSV) {
exit exit
} }
# Rebuild CSV file to be valid
(Get-Content $CSVFILE | Select-Object -Skip 1) | Set-Content $CSVFILE ## Remove first line
"FROM,TO`n" + (Get-Content $CSVFILE -Raw) | Set-Content $CSVFILE ## Add FROM,TO to CSV file
(Get-Content $CSVFILE) | Where-Object {$_.trim() -ne "" } | Set-Content $CSVFILE ## Remove empty lines
# Create alias # Create alias
set-alias 7z "$env:ProgramFiles\7-Zip\7z.exe" set-alias 7z "$env:ProgramFiles\7-Zip\7z.exe"
@ -53,7 +57,15 @@ WRITELOG "Looping through CSV file"
foreach ($SOURCE_ENTRY in $CSVFILE) { foreach ($SOURCE_ENTRY in $CSVFILE) {
$COUNTER++ $COUNTER++
$SOURCE = ${SOURCE_ENTRY}.FROM $SOURCE = ${SOURCE_ENTRY}.FROM
if ($null -eq $SOURCE) {
WRITELOG "SOURCE variable is empty! Please check the CSV file. Exiting..."
exit
}
$TARGET = ${SOURCE_ENTRY}.TO $TARGET = ${SOURCE_ENTRY}.TO
if ($null -eq $TARGET) {
WRITELOG "TARGET variable is empty! Please check the CSV file. Exiting..."
exit
}
WRITELOG "Archiving: $COUNTER - $SOURCE" WRITELOG "Archiving: $COUNTER - $SOURCE"
Write-Output "Archiving $SOURCE" Write-Output "Archiving $SOURCE"
@ -87,7 +99,7 @@ foreach ($SOURCE_ENTRY in $CSVFILE) {
# Start archiving # Start archiving
WRITELOG "7ZIP $SOURCE" WRITELOG "7ZIP $SOURCE"
7z a -mx3 -t7z -r "$TARGET\$TARGET_FILENAME" "$SOURCE\*" 7z a -mx3 -t7z -r "${TARGET}\${TARGET_FILENAME}" "$SOURCE\*"
# Validate number of files in archive and DFS # Validate number of files in archive and DFS
WRITELOG "Compare the number of files in DFS and archive" WRITELOG "Compare the number of files in DFS and archive"
@ -99,6 +111,10 @@ foreach ($SOURCE_ENTRY in $CSVFILE) {
ForEach-Object { ForEach-Object {
$7ZIP_FILECOUNT = [Int] $_.Matches[0].Groups[1].Value $7ZIP_FILECOUNT = [Int] $_.Matches[0].Groups[1].Value
if ($7ZIP_FILECOUNT -eq $null) {
# Ignore counter if null
}
} }
## DFS ## DFS
@ -114,7 +130,7 @@ foreach ($SOURCE_ENTRY in $CSVFILE) {
Write-Output "Cleaning up $SOURCE" Write-Output "Cleaning up $SOURCE"
robocopy /MIR $EMPTY_FOLDER $SOURCE robocopy /MIR $EMPTY_FOLDER $SOURCE
remove-item -Force -Recurse $SOURCE remove-item -Force -Recurse $SOURCE
WRITELOG "Source has been archived!" WRITELOG "Source has been archived to $TARGET!"
if (!(test-path $TEMPFOLDER_DONE)){ if (!(test-path $TEMPFOLDER_DONE)){
WRITELOG "Renaming stage folder to $TEMPFOLDER_DONE" WRITELOG "Renaming stage folder to $TEMPFOLDER_DONE"
Rename-Item -Path $TEMPFOLDER_RUNNING -NewName $TEMPFOLDER_DONE Rename-Item -Path $TEMPFOLDER_RUNNING -NewName $TEMPFOLDER_DONE
@ -128,4 +144,4 @@ foreach ($SOURCE_ENTRY in $CSVFILE) {
} }
} }
} }
write-host "===========================ARCHIVE ENDED===========================" WRITELOG "=========================== Archiving ended ==========================="

View File

@ -1,3 +1,10 @@
## 2.4.0
- Added extra checks if FROM and TO are properly set
## 2.3.0
- Added CSV check for consistancy
- Added target to logging
## 2.2.0 ## 2.2.0
- Improved logging - Improved logging
- Added extra confirmation checks on file existance or exiting if issues are found - Added extra confirmation checks on file existance or exiting if issues are found
@ -6,4 +13,4 @@
- Added log to textfile - Added log to textfile
## 2.0.4 ## 2.0.4
- Initial release - Initial release