如何解决如果子文件夹中有csv文件,如何不删除文件夹
我正在尝试清除目录,但我想保留包含csv文件的文件夹。我尝试使用此命令:
Remove-Item -Path "$Using:MyPath" -Exclude "*.csv","*.end" -Recurse -Force -ErrorAction Stop
但是它不适用于以下结构。如果里面有一个csv文件
Sub2Folder Remove-Item
将删除SubFolder及其所有内容,而我的csv文件也会丢失。有没有一种方法可以避免这种情况,并且如果其中任何一个子文件夹中包含csv文件,则不删除文件夹?
MainFolder
- 子文件夹
-
- Sub2Folder
-
-
- somefile.csv
-
解决方法
我做了一个小脚本,确实做到了这一点。问我是否需要更多帮助;)
$subfolders = Get-Childitem "$Using:MyPath\*" -Directory
#Get all folders
#foreach folder in the folders
foreach ($subfolder in $subfolders) {
if (!(Get-Childitem $subfolder.FullName -Recurse -Filter "*.csv")){ #If subfolder empty
Remove-Item $subfolder.FullName -Force -Recurse #Remove this folder
}
}
编辑:感谢Grzegorz Ochlik,我对该脚本进行了一些更改。 (-目录开关,没有测量对象
如果我帮助过您,请将此帖子标记为答案:D
,这对我有用:
Get-ChildItem "$Using:MyPath" -Exclude "*.csv","*.end" -Recurse -File | Foreach {Remove-Item $_.Fullname}
这将列出除通配符文件之外的所有文件,并将其删除。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。