繁体   English   中英

如何使用 powershell 删除具有特定名称的所有文件夹

[英]How to delete all folders with a specific name using powershell

我有一个文件夹,我必须从中删除所有名称如“tempspecssuite_”的子文件夹

我的文件夹结构如下

  1. 文件夹 1
    • 源代码
    • 目标
    • tempspecssuite_0
    • tempspecssuite_1

我想递归删除名称为 tempspecssuite_ 的文件夹

我尝试使用以下命令,但没有成功

Get-Childitem -path C:\folder1 -Recurse | where-object {$_.Name -ilike "*tempspecssuite_*"} | Remove-Item -Force -WhatIf

管道对象需要用$_引用,而不是$ ,如下所示:

Get-Childitem -Path C:\folder1 -Recurse | Where-Object {$_.Name -ilike "*tempspecssuite*"} | Remove-Item -Force -WhatIf

也可以使用$PSItem引用或使用-PipelineVariable通用参数设置为自定义变量。 您可以在about_pipelinesabout_objectsabout_automatic_variables中找到更多信息。

您还可以通过使用Get-ChildItem中的-Filter参数来简化上述操作,该参数也接受通配符:

Get-ChildItem -Path C:\folder1 -Directory -Filter tempspecssuite_* -Recurse | Remove-Item -Force -Recurse -WhatIf

这允许Get-ChildItem在检索文件时对其进行过滤,而不是在之后使用Where-Object进行过滤。

您还可以使用-Directory开关限制过滤,因为我们只关心删除目录。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM