我有一个包含很多子文件夹的文件夹,每个子文件夹都包含一个 .cpp 文件和多个不重要的文件。我想运行一个进入每个子文件夹的命令,并删除除文件夹本身和 .cpp 文件之外的所有内容。
我已经尝试过这个命令,但它只是删除了文件夹本身:
gci -Path $path | ? {!($_.Name -ilike "*.cpp")} | % { Remove-Item -Path $_.FullName }
提前谢谢您!
如果所有文件夹中至少有一个
.cpp
,那么您应该只关心查找所有没有 .cpp
扩展名的文件并删除它们,因此,添加 -Recurse
、-File
和 -Exclude *.cpp
接听您的 Get-ChildItem
电话:
Get-ChildItem -Path $path -File -Recurse -Exclude *.cpp |
Remove-Item