我有一個PS腳本,拉鍊了前幾個月的日誌和名稱的zip文件FILENAME-YYYY-MM.zip
PowerShell的複製文件和文件夾
這工作
我現在想要做的就是複製這些zip文件開了個網絡共享但保留一些文件夾結構。我目前的文件夾結構類似於以下;
C:\Folder1\
C:\Folder1\Folder2\
C:\Folder1\Folder3\
C:\Folder1\Folder4\Folder5\
有以下c:\Folder1
我要的是對腳本文件複製從c:\folder1
到\\networkshare
但保持文件夾結構,每個文件夾中的.zip文件,所以我應該有3個文件夾,並在folder4
另一個子文件夾。
目前我只能得到它,所以我在我的\\networkshare
我一直運行到的問題,如新的文件夾結構不存在,我無法使用-recurse
開關獲得c:\folder1\...
複製整個結構在Get-ChildItem
命令等內...
我到目前爲止的腳本是;
#This returns the date and formats it for you set value after AddMonths to set archive date -1 = last month
$LastWriteMonth = (Get-Date).AddMonths(-3).ToString('MM')
#Set destination for Zip Files
$DestinationLoc = "\\networkshare\LogArchive\$env:computername"
#Source files
$SourceFiles = Get-ChildItem C:\Sourcefiles\*.zip -Recurse | where-object {$_.lastwritetime.month -le $LastWriteMonth}
Copy-Item $SourceFiles -Destination $DestinationLoc\ZipFiles\
Remove-Item $SourceFiles
類似的問題我在這裏看到的回答是「不要重新發明輪子,只是使用robocopy」,因此可能需要考慮。 –
是的,我認爲robocopy可以解決你的問題。看看這個問題,如果幫助你:http://stackoverflow.com/questions/21606259/robocopy-copy-files-preserving-folder-structure-but-adding-a-subfolder – wallybh
@TonyHinkle使用robocopy可以產生問題,如果robocopy日誌將被解析 - 我遇到了與該文件編碼有關的麻煩,如果通過'> file.log'記錄,robocopy會放入^ H符號。而且,爲什麼不在Powershell上編寫自己的解決方案,而不是依賴第三方軟件? – Vesper