我有一个场景,其中powershell脚本应该删除路径中的日志文件和日志文件夹,假设它们位于路径C:\ MLA \ logs。
下面是我一直在使用的脚本,它完成删除文件,但问题是脚本不能用于删除文件夹,它显示的错误是无法找到路径的一部分
C:\ MLA \日志\ ART_Daily
。下面是脚本
$root=C:\MLA\logs
$limit=(Get-Date).AddDays(-90)
get-childitem -Path $root -Recurse -force |
where-Object {(($_.name -match 'Daily|ART|ABC|IIC') -or ($_.PSIsContainer -match 'Daily|ART|ABC|IIC')) -and ($_.CreationTime -lt $limit)} |Remove-Item -recurse -Force
$ 名称检查根路径中的文件(如果管道名称是任何文件的文件名的一部分),$ .PSIsContainer检查文件夹9 f管道名称是根参数化的根路径内的任何文件夹的文件夹名称的一部分。
你能帮我解决吗?答案 0 :(得分:1)
您需要为初学者更正过滤器:
$_.name -match 'Daily|ART|ABC|IIC'
将匹配具有该名称的文件和文件夹。
$_.PSIsContainer -match 'Daily|ART|ABC|IIC'
什么都找不到,因为PSIsContainer
属性是boolean(它是否是容器:True / False?)。