You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell批量清理子文件夹:保留文件夹与.cpp文件,删除其余内容

解决PowerShell删除子文件夹内非.cpp文件的问题

你的原命令问题在于直接遍历了目标路径$path下的所有项,包括子文件夹本身,过滤掉.cpp文件后,子文件夹会被当成要删除的对象执行删除操作。

正确的思路是:先遍历$path下的所有子文件夹,再进入每个子文件夹内部,删除除.cpp文件外的所有内容。

修正后的命令

gci -Path $path -Directory | ForEach-Object {
    # 遍历当前子文件夹内的所有内容
    gci -Path $_.FullName | Where-Object { !($_.Name -ilike "*.cpp") } | Remove-Item -Recurse -Force
}

关键说明

  • -Directory参数:确保只遍历$path下的子文件夹,不会把根目录的其他文件纳入处理
  • -Recurse:如果子文件夹内还有嵌套的子目录或文件,会递归删除所有非.cpp内容
  • -Force:强制删除只读、隐藏等特殊属性的文件/文件夹

如果需要测试命令是否正确,可以先把Remove-Item换成Select-Object FullName,查看将要删除的对象列表,确认无误后再执行删除操作。

内容的提问来源于stack exchange,提问作者Loaf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 06:19:51