因此,我想使用以下"脚本"
每晚清理一些用户个人资料。Get-ChildItem 'F:\View\Profiles\' -Recurse -Force |
Where-Object {$_.Directory -match 'F:\\View\\Profiles\\((\w*).V2)\\AppData\\Roaming\\Trillian\\users\\((\w*%\w*%\w*))\\logs\\(_CLOUD|ASTRA)'} |
Remove-Item -Recurse -Force
这会删除所有日志文件,但会留下文件夹结构。因此,我尝试了以下查询。
Get-ChildItem 'C:\TestProfileClean' -Recurse -Force |
Where-Object {(($_.Name -eq "logs" -and $_.Directory) -and $_.DirectoryName -match 'C:\\TestProfileClean\\(\w*.V2)\\AppData\\Roaming\\Trillian\\Users\\((\w*)%40(\w*)%2Ecom)' )} |
Remove-Item -Recurse -Force
这可确保删除的文件夹名为" logs"它是一个目录,目录名称采用这种格式。
C:\\TestProfileClean\\(\w*.V2)\\AppData\\Roaming\\Trillian\\Users\\((\w*)%40(\w*)%2Ecom)
问题是,当我运行第二个命令时,它不会删除任何文件,如果我切断了$_.DirectoryName
,那么我得到以下输出。
Directory: C:\TestProfileClean\username.V2\AppData\Roaming\Trillian\users\username%40compcorp%2Ecom
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 12/14/2016 9:56 AM logs
哪个会删除我想要的内容,但不足以让我轻松运行它。
阻止文件夹被删除但脚本将删除所有非文件夹项目的错误。
答案 0 :(得分:1)
您缺少通配符来浏览该文件夹下的所有通配符。我刚刚修改了你的代码:
def fetch[S <: PetSearcher[F], F <: Thing](searcher: S, what: F): Unit = {
注意:我没有检查正则表达式。我只调整 get-childitem 部分。
除此之外,我还有另外两个建议。如果您真的想每晚删除用户配置文件,那么您可以使用小实用工具
1)由批次
组成2)由powershell制作。
以下是供您参考的链接。
希望这有助于...... !!!