我需要编写一个脚本,以删除上次写入时间约为7天的文件夹。但是请保留2个“特殊”文件夹及其内容。
到目前为止,这是我的脚本:
$source = "D:\TestOrdner"
$time = (Get-Date)#.AddDays(-7)
Start-Transcript "C:\log_files\log.txt"
gci $source -Recurse | ?{$_.LastWriteTime -lt $time} | del -Force -Verbose
Stop-Transcript
我唯一的问题是如何排除包含内容的文件夹?
我要保存的文件夹:D:\TestOrdner\Test
。
答案 0 :(得分:0)
删除用户配置文件文件夹时要小心,因此请保持-WhatIf
开关,直到您完全确定以下内容不会删除不应删除的文件夹。
Move
而不是删除这些文件夹可能是个好主意?
由于这涉及到一个用户配置文件文件夹,每个用户在根文件夹下都有自己的文件夹,因此无需-Recurse
上的Get-ChildItem
开关
无论如何,应该这样做:
$source = "D:\TestOrdner"
$time = (Get-Date).AddDays(-7)
Start-Transcript "C:\log_files\log.txt"
Get-ChildItem $source -Directory -Exclude 'Administrator','Default','Public' |
Where-Object {$_.LastWriteTime -lt $time} |
Remove-Item -Recurse -Force -confirm:$false -WhatIf
Stop-Transcript