我對Powershell和腳本非常陌生,如果有人能夠提供幫助,我將非常感激。最後一天修改過的壓縮/壓縮文件
我正在嘗試創建一個PowerShell腳本,它執行以下操作來備份設置數量的目錄中每天的任何更改。
從最近24小時內從多個預設位置遞歸地查找任何新的/修改過的文件或目錄。
壓縮所有導致一個zip文件
- 條目,同時保持
我設法找到取得使用下面的腳本的第一位工作的文件夾結構:
Get-ChildItem $SRC | Where {$_.PsIsContainer} | foreach-object {
Get-ChildItem $_ -Recurse -ErrorAction SilentlyContinue |
Where {$_.LastWriteTime -gt (get-date).AddDays(-1).date} |
Select FullName, LastWriteTime, Mode | Sort LastWriteTime, Mode
} >> C:\temp\LastModified-$TimeStamp.log
我有另一個腳本拉鍊給定的目錄,但我一直在努力使用上述腳本的結果robocopy文件到一個位置,然後我可以Zip或如果噸這裏有一種方法可以創建一個zip文件,而不必先將文件複製到某處,而不會丟失每個文件的文件夾結構?
我有以下腳本可以Zip給定的目錄(但我需要將多個目錄壓縮成一個zip文件,除非我先將文件robocopy在某處&如何讓robocopy只複製上次修改過的文件24小時)
$Source = 'C:\Users\Downloads\RobocopyLocation\'
$Destination = 'D:\OneDrive\'
$TimeStamp = Get-Date -f yyyyMMdd_HHmmss
$ZipName = "$Destination\$TimeStamp" + '_Backup.zip '
Add-Type -Assembly "System.IO.Compression.FileSystem" ;
[System.IO.Compression.ZipFile]::CreateFromDirectory($Source, $ZipName)
當我運行下面的腳本,我得到和錯誤信息抱怨路徑參數爲空。
$F1 = 'C:\Users\Downloads\Folder A'
$F2 = 'C:\Users\Downloads\Folder B'
$F3 = 'C:\Users\Downloads\Folder C'
$SrcFolders = ($F1, $F2, $F3);
$BackupDrive = "D:\OneDrive"
$DestFolders = ("$BackupDrive\Folder A", "$BackupDrive\Folder B", "$BackupDrive\Folder C");
$Destination = 'C:\Users\SysAdmin\Downloads\PLSWork\'
$TimeStamp = Get-Date -f yyyyMMdd_HHmmss
$ZipName = "$Destination\$TimeStamp" + '_Backup.zip '
$Option = "{$_.PsIsContainer} | foreach-object { Get-ChildItem $_ -Recurse -ErrorAction SilentlyContinue | Where {$_.LastWriteTime -gt (get-date).AddDays(-1).date} | Select FullName, LastWriteTime, Mode | Sort LastWriteTime, Mode}"
Foreach ($SrcFolders in (Get-ChildItem $SrcFolders | where $Option)){
Add-Type -Assembly "System.IO.Compression.FileSystem" ;
[System.IO.Compression.ZipFile]::CreateFromDirectory($SrcFolders, $ZipName)
}
「我得到的和錯誤消息抱怨路徑參數爲空」 – 4c74356b41
能否請您發佈錯誤?我們需要弄清楚,PowerShell在拋出Null異常的地方。 –