Logfiles archivieren u. komprimieren
Dateien werden in ein neues Verzeichnis verschoben und dort zu einem ZIP-File komprimiert. Danach werden die verschobenen Dateien gelöscht. Diese Routine ist für mehrere Unterordner innerhalb eines Ordners gedacht.
Add-Type -AssemblyName system.io.compression.filesystem
Get-ChildItem D:\ADLDS-SyncLogfiles\
$folders =@("Unterordner1","Unterordner2")
foreach($folder in $folders)
{
$sourcefiles = Get-ChildItem "D:\SyncLogfiles\$folder\*.txt"
if($sourcefiles.Count -gt 0 )
{
$path = ($sourcefiles[0]).Directory.FullName
$archivePath = "$path\Archive"
if(!(Test-Path -Path $archivePath))
{
New-Item -ItemType Directory $archivePath
}
$DateFolder = $archivePath.ToString() + "\" + (get-date -Format yyyyMMddHHmm).ToString()
if(!(Test-Path -Path $DateFolder))
{
New-Item -ItemType Directory $DateFolder
}
$sourcefiles | Move-Item -Destination $DateFolder
[io.compression.zipfile]::CreateFromDirectory($DateFolder,"$DateFolder.zip")
Remove-Item -Path $DateFolder -Recurse -Force
}
}