约 2000 字

约 10 分钟

#PowerShell 的 Remove-Item 命令

Remove-Item
    [-Path] <String[]>
    [-Filter <String>]
    [-Include <String[]>]
    [-Exclude <String[]>]
    [-Recurse]
    [-Force]
    [-Credential <PSCredential>]
    [-WhatIf]
    [-Confirm]
    [-Stream <String[]>]
    [<CommonParameters>]

功能

删除一个或多个项,例如文件、目录、注册表项、变量、别名和函数。

类型

Cmdlet,属于 Microsoft.PowerShell.Management。

参数

  • [-Path] <String[]> - 要删除的项路径;支持通配符
  • -LiteralPath <String[]> - 按字面值解释路径,不将任何字符视为通配符
  • -Filter <String> - 由提供程序执行的筛选器,通常比 -Include 更高效
  • -Include <String[]> - 只包含匹配的项;仅对 -Path 的通配符匹配结果生效
  • -Exclude <String[]> - 排除匹配的项
  • -Recurse - 递归删除指定位置中的所有子项
  • -Force - 删除隐藏或只读文件等默认无法删除的项
  • -Stream <String[]> - 删除 NTFS 备用数据流;仅在 Windows 上可用
  • -WhatIf - 显示将要执行的操作而不实际执行;别名 wi
  • -Confirm - 执行命令前提示确认;别名 cf

#示例

删除文件

> Remove-Item -Path ./temp.log
  • 删除单个文件时不需要 -Recurse。

删除目录及其内容

> Remove-Item -Path ./build -Recurse
  • 删除非空目录必须使用 -Recurse。

删除只读或隐藏文件

> Remove-Item -Path ./readonly.txt -Force
  • -Force 可以删除只读或隐藏文件,但不能绕过安全限制。

先预览再删除

> Remove-Item -Path ./old -Recurse -WhatIf
What if: Performing the operation "Remove Directory" on target "Item: /home/user/old".
  • 建议在执行危险的递归删除前先用 -WhatIf 检查目标。

删除含特殊字符的文件

> Remove-Item -LiteralPath './myFile[1].txt'
  • 方括号会被通配符解析,使用 -LiteralPath 可按字面值删除。

#推荐阅读

更新: 2026/11/2

作者: planc

创建: 2026/11/2