我是 powershell 新手,正在尝试学习将基本文件从一个目录移动到另一个目录。我的目标是将超过 18 个月的文件和文件夹移动到作为计划任务运行的冷存储文件夹中。我需要能够轻松修改它的目录以满足我们的需求。它需要保留文件夹结构,只移动符合上述参数的文件。我还需要它来记录它所做的一切,如果有什么事情发生了,我知道在哪里。如果我运行它,它只会复制所有内容。如果我注释掉 %{Copy-Item... ,那么它只会根据我的参数运行和列出并记录它。我哪里错了,或者我离基地很远?
是的,使用 robocopy 来做到这一点很容易,但我想使用 powershell 并从中学习。
#Remove-Variable * -ErrorAction SilentlyContinue; Remove-Module *; $error.Clear();
#Clear-Host
#Days older than
$Days = "-485"
#Path Variables
$Sourcepath = "C:\Temp1"
$DestinationPath = "C:\Temp2"
#Logging
$Logfile = "c:\temp3\file_$((Get-Date).ToString('MM-dd-yyyy_hh-mm-ss')).log"
#transcript logs all outputs to txt file
Start-Transcript -Path $Logfile -Append
Get-ChildItem $Sourcepath -Force -Recurse |
Where-Object {$_.LastwriteTime -le (Get-Date).AddDays($Days)} |
% {Copy-Item -Path $Sourcepath -Destination $DestinationPath -Recurse -Force}
Stop-Transcript