ZetCode

PowerShell Remove-Item

最后修改:2025 年 2 月 15 日

在本文中,我们将介绍 PowerShell 中的 Remove-Item cmdlet。此 cmdlet 可从各种提供程序删除文件、文件夹、注册表项和其他项。

Remove-Item 基础知识

Remove-Item cmdlet 从 PowerShell 提供程序位置删除一个或多个项。它适用于文件系统、注册表、证书存储和其他提供程序。该 cmdlet 可以删除文件、目录、注册表项和变量。它支持用于模式匹配的通配符,并具有安全功能。

Remove-Item 基本用法

使用 Remove-Item 的最简单方法是指定文件路径。这将永久删除指定的文件。默认情况下,cmdlet 不会请求确认。请小心,因为删除的文件不会进入回收站。

remove1.ps1
Remove-Item -Path "C:\temp\oldfile.txt"

此命令删除 C:\temp 目录中的文件 "oldfile.txt"。如果文件不存在,PowerShell 将显示错误消息。

删除目录

要删除目录,请指定目录路径。默认情况下,cmdlet 仅删除空目录。使用 -Recurse 参数删除包含内容的目录。这是一项强大的操作,应谨慎使用。

remove2.ps1
Remove-Item -Path "C:\temp\oldfolder" -Recurse

此命令删除 "oldfolder" 目录及其所有内容。-Recurse 参数允许删除非空目录。

使用通配符进行模式匹配

Remove-Item cmdlet 支持用于模式匹配的通配符。星号 (*) 匹配任何字符,而问号 (?) 匹配单个字符。这允许批量删除与模式匹配的文件。

remove3.ps1
Remove-Item -Path "C:\temp\*.bak"

此命令删除 C:\temp 中所有扩展名为 .bak 的文件。通配符 (*) 匹配扩展名前的任何文件名。

使用 -WhatIf 参数

-WhatIf 参数显示实际删除任何内容之前会发生什么。这有助于在执行命令之前测试命令。它通过显示命令的影响来帮助防止意外删除。

remove4.ps1
Remove-Item -Path "C:\temp\*" -Recurse -WhatIf

此命令显示如果命令在没有 -WhatIf 的情况下运行会删除什么。输出列出了将被删除的所有文件和文件夹。

使用 -Confirm 进行交互式删除

-Confirm 参数在每次删除前提示确认。这为删除重要文件时增加了一层安全保障。PowerShell 会显示每个项目并要求确认后再继续。

remove5.ps1
Remove-Item -Path "C:\temp\important.txt" -Confirm

此命令在删除 important.txt 之前提示确认。您必须回答“Y”或“A”才能继续删除。

删除只读文件

默认情况下,Remove-Item 不会删除只读文件。使用 -Force 参数可以覆盖此行为。此参数还会抑制确认提示,并可以删除隐藏文件。

remove6.ps1
Remove-Item -Path "C:\temp\readonly.txt" -Force

此命令强制删除 readonly.txt,而不考虑其只读属性。请谨慎使用 -Force,因为它会绕过保护。

删除注册表项

Remove-Item 在处理注册表提供程序时可以删除注册表项。指定完整的注册表路径,并对包含子项的项使用 -Recurse。在进行任何更改之前,请务必备份注册表。

remove7.ps1
Remove-Item -Path "HKLM:\Software\MyOldApp" -Recurse

此命令删除 MyOldApp 注册表项及其所有子项。注册表操作需要提升的权限(以管理员身份运行)。

来源

PowerShell 文档

在本文中,我们介绍了 PowerShell 中的 Remove-Item cmdlet。

作者

我叫 Jan Bodnar,是一位充满热情的程序员,拥有丰富的编程经验。自 2007 年以来,我一直撰写编程文章。迄今为止,我已撰写了 1,400 多篇文章和 8 本电子书。我在编程教学方面拥有十多年的经验。

列出 所有 PowerShell 教程