删除内容文件夹排除内容文件夹

时间:2019-09-20 08:18:37

标签: powershell powershell-5.0

我需要编写一个脚本,以删除上次写入时间约为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

1 个答案:

答案 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