因为我是PowerShell的新手,所以我有以下情况。
我有一个路径 d:\folder 有很多子文件夹和子文件夹 en 文件。在此文件夹结构中,我想删除名称为“Temp”、“History”、“Thumbnails”的所有文件夹以及该特定文件夹名称下的所有文件夹 en 文件。
到目前为止,我已经使用了以下代码$path = "d:\folder\" Get-ChildItem $path -Recurse -Force -Directory | Where-Object {$_.Name -eq 'temp'} | % {Remove-Item $_.FullName}
这仅适用于 1 个文件夹。我找不到多个文件夹的方式?使用此代码,我会弹出询问删除文件夹的问题。有没有办法让这种沉默?
尝试使用
-Include
Get-ChildItem 上的参数,它可以使用一组名称来“过滤”。这样你就不需要该Where-Object
子句。此外,不需要
ForEach-Object
循环(别名%
),因为 Remove-Item 可以立即处理管道结果:通过将
-Recurse
开关添加到 Remove-Item,当文件夹中有子项时不会弹出。我添加了安全开关
-WhatIf
,因此文件夹实际上不会被删除。您只会在控制台中看到会发生什么。一旦您对此感到满意,请移除
-WhatIf
开关以开始删除