我正在處理一個(非常簡單)的powershell腳本,它必須將多個子文件夾中的多個文件(在本例中爲.bak文件)壓縮到目標文件夾。Powershell和7zip - 來自多個(子)文件夾的多個文件
事情是這樣的:
來源:
F:\備份\ USER1 \ file1.bak
F:\備份\用戶2 \ file2.bak
要:
x:\ backupfolder \ users \ file1.zip
x:\ backupfolder \ users \ file2.zip
腳本:
$path = "f:\backup\"
$dest = "x:\backupfolder\users\"
$mask = "file*.bak"
$days = 1
$files = dir $path -Recurse -Include $mask | where {
($_.LastWriteTime -gt (Get-Date).AddDays(-$days).AddHours(-$hours).AddMinutes(-$mins)) -and ($_.psIsContainer -eq $false)
}
ForEach ($file in $files)
{
7z.exe a -tzip "$dest\$file.name.zip" $file
}
的問題是,在這種情況下,我得到指定的路徑是無效的錯誤,因爲7zip的試圖在這個
x:\backupfolder\users\f:\backup\user1\file1.bak.name.zip
形式創建存檔如果我嘗試這樣的:
7z.exe a -tzip "$dest\$_.basename.zip" $file
我得到一個壓縮文件X:\ backupfolder \用戶\ .basename.zip
所有我想要這個紙條要做的是將壓縮文件(file1.bak)壓縮到一個名爲(file1.zip)的檔案文件夾中。
我在做什麼錯?
TYVM。
Ty。 '7z.exe a -tzip「$ dest \ $($ file.basename).zip」$ file'做到了。 – JohnnyP