超過30天的Zip文件我知道這個問題已被問了好幾次,但我的要求與我在這裏和谷歌上讀到的略有不同。超過30天使用7zip
我有下面的文件夾結構。
c:\weblogs\Servers\Server1
c:\weblogs\Servers\Server2
服務器1文件夾可以包含文件夾,如:
W3SVC1
W3SVC2
W3SVC3
服務器2將具有類似的文件夾結構。
我想創建一個腳本,它會查看每個W3SVC*
文件夾的.log
超過30天的文件。
然後,它會在每個這樣的W3SVC*
子文件夾中創建一個名爲Oldlogs-Server*-W3SVC*.zip
的zip文件,並將舊日誌移至該文件。在第二次運行時,它會將超過30天的任何新文件移動到相應的zip文件中。
我不是開發者,但是如果沒有可用的現有腳本,任何示例或建議都會有所幫助。
這是我認爲劇本是最接近我想實現:
目前,它拋出一個錯誤:
"\WebApps\LogHarvest\pkzipc.exe needed"
# Alias for pkzip
if (-not (test-path "$env:F:\WebApps\LogHarvest\pkzipc.exe")) {
throw "$env:F:\WebApps\LogHarvest\pkzipc.exe needed"
}
set-alias sz "$env:WebApps\LogHarvest\pkzipc.exe"
############################################
#### Variables
$filePath = "F:\Weblogs\Test"
$log = Get-ChildItem -Recurse -Path $filePath | Where-Object { $_.Extension -eq ".log" }
########### END of VARABLES ##################
foreach ($file in $log) {
$name = $file.name
$directory = $file.DirectoryName
$zipfile = $name.Replace(".log",".7z")
sz a -t7z "$directory\$zipfile" "$directory\$name"
}
########### END OF SCRIPT ##########
Kev,我已經添加了腳本,我嘗試了這個問題,我認爲它接近我想要做的。 。 – user1452414