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

PowerShell清理文件夹内容后子文件夹未删除的原因咨询

为什么你的PowerShell命令没删除子文件夹?

咱们来拆解一下你这条命令的问题核心,其实原因很直接:

  • 你加了-File参数:这个参数会强制Get-ChildItem只返回指定路径下的文件对象,完全忽略所有子文件夹。所以你的整个循环里根本没有处理任何文件夹,自然删不掉子文件夹。
  • 顺带提个小细节:-Include *.*会过滤掉没有扩展名的文件(比如命名为readme的无后缀文件),不过这不是子文件夹没被删除的主因。

修正方案:彻底清空文件夹内容

如果你的目标是完全清空testdir1里的所有内容(文件+子文件夹),最高效的方式是直接用Remove-Item的递归删除功能:

$pathvar = "D:\temp\testdir1"
Remove-Item -Path "$pathvar\*" -Recurse -Force
  • "$pathvar\*"确保只删除文件夹内的内容,不会删掉testdir1本身
  • -Recurse自动处理所有子文件夹及其内容
  • -Force强制删除只读、隐藏等特殊属性的文件/文件夹

如果你想保留遍历的方式

如果一定要沿用原命令的遍历结构,需要去掉-File参数,同时用更稳妥的方式处理文件夹(直接调用Delete()方法无法删除非空文件夹):

$pathvar = "D:\temp\testdir1"
Get-ChildItem -Path $pathvar -Recurse | ForEach-Object {
    Remove-Item -Path $_.FullName -Force -Recurse
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 06:27:31