我正在开发一些PowerShell脚本,可以自动从“X-Drive”中移动文件夹和文件。文件夹并将其移动到“旧”文件夹中。文件夹也位于' X-Drive'文件夹,但我希望它只保留第一层文件夹,所有内容都可以移动,但只需要保留文件夹,但它也需要在“旧”文件夹中。文件夹中。
$exclude = @('Keep 1', 'Keep 2')
Get-ChildItem -Path "C:\X-Drive" -Recurse -Exclude $exclude |
Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-0) } |
Move-Item -Destination "C:\X-Drive\Old" -ErrorAction 'SilentlyContinue'
答案 0 :(得分:0)
枚举C:\X-D_rive
的子文件夹,然后将其内容移至C:\X-Drive\old
中的相应子文件夹,例如像这样:
$refdate = (Get-Date).AddDays(-1)
Get-ChildItem 'C:\X-Drive' -Directory -Exclude $exclude | ForEach-Object {
$dst = Join-Path 'C:\X-Drive\old' $_.Name
If (-not (Test-Path -LiteralPath $dst)) {
New-Item -Type Directory -Path $dst | Out-Null
}
Get-ChildItem $_.FullName -Recurse | Where-Object {
$_.LastWriteTime -lt $refdate
} | Move-Item -Destination $dst
}
您可能希望将old
添加到$excludes
,BTW。
代码假定您正在运行PowerShell v3或更新版本。