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

如何用PowerShell脚本删除子文件夹文件并排除根目录

解决PowerShell脚本误删根目录文件的问题

你的脚本会删除根目录文件,核心原因是-Recurse参数会遍历当前路径下所有层级的文件,包括根目录本身。只需添加一个过滤条件,就能只处理子文件夹里的文件,同时保留排除.ps1脚本的逻辑。

修改后的脚本如下:

$rootPath = Get-Location
# 仅筛选子文件夹中的文件(排除根目录),同时排除.ps1脚本
$targetFiles = Get-ChildItem -File -Recurse | Where-Object {
    $_.DirectoryName -ne $rootPath -and $_.Extension -ne '.ps1'
}
$deletedCount = $targetFiles.Count

# 执行删除操作
$targetFiles | ForEach-Object { $_.Delete() }

Write-Host "已在路径 '$rootPath' 的所有子文件夹中删除了 '$deletedCount' 个文件!"
pause

关键修改说明:

  • 用Where-Object {$_.DirectoryName -ne $rootPath}过滤掉根目录下的文件,仅保留子文件夹内的文件
  • 将文件筛选与计数合并为一步,避免原脚本中计数包含根目录文件的错误
  • 直接通过$targetFiles.Count获取实际删除的文件数量,无需手动减1(已通过扩展名过滤排除脚本自身)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 21:12:01