#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
完整参数可使用
Get-Help Remove-Item -Full查看。
删除目录时,如果目录中包含项但没有指定
-Recurse,命令会提示确认。-Confirm:$false不会抑制该提示,这是设计行为。
#示例
删除文件
> 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可按字面值删除。