PowerShell 删除文件夹
-
在 PowerShell 中使用
Remove-item
Cmdlet 删除文件夹 - 在 PowerShell 中使用命令提示符删除文件夹
-
在 PowerShell 中使用
FileSystem
对象方法删除文件夹 - 在 PowerShell 中使用 .Net 类删除文件夹
PowerShell 中的文件夹删除操作会从给定位置删除文件夹,无论它是本地路径还是共享路径。
本文重点介绍使用 PowerShell 删除文件夹的不同方法。
在 PowerShell 中使用 Remove-item
Cmdlet 删除文件夹
可以使用 Remove-Item
cmdlet 删除一个或多个对象。
我们可以使用两种不同的语法进行删除。但需要注意的是,这两者可以单独使用,但不能组合使用。
- 语法 1
Remove-Item
[-Path] <String[]>
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-Recurse]
[-Force]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[-Stream <String[]>]
[<CommonParameters>]
- 语法 2
Remove-Item
-LiteralPath <String[]>
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-Recurse]
[-Force]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[-Stream <String[]>]
[<CommonParameters>]
-Path
和 -Literalpath
不能在相同的语法中使用。
Remove-item
参数
下面给出了最常用参数的名称和描述。
名称 | 说明 |
---|---|
-Path |
指定要移除的东西的位置。通配符的使用没有限制。 |
-LiteralPath |
指定到一个或多个位置的路径 |
-Confirm |
运行 cmdlet 前会提示确认 |
-Exclude |
cmdlet 在操作期间排除的项目 |
-Credential |
任何 PowerShell 安装的提供程序都不支持此参数。在使用此 cmdlet 时,使用 Invoke-Command 模拟其他用户或提升你的权限。 |
-Filter |
过滤以验证路径参数 |
-Force |
强制删除无法以其他方式修改的对象,例如私有或只读文件/别名或变量。 |
-Include |
cmdlet 在操作期间包含的项目 |
-Recurse |
此 cmdlet 丢弃给定位置中的对象以及所有位置的子项。 |
-Stream |
Stream 参数是由 FileSystem 提供程序添加到 Remove-Item 的动态参数。此设置仅适用于具有文件系统的驱动器。 |
-WhatIf |
显示执行 cmdlet 时会发生什么。 |
让我们看一些示例以及不同的语法用法,
示例 1:
在这里,我们将使用下面提到的命令删除 test1
文件夹,最后,你可以看到该文件夹将被删除。
Remove-Item 'D:\temp\Test1'
示例 2:
我们将递归删除文件夹 test2。PowerShell 在前面的示例中检查目录是否为空。在这种情况下,它只会删除该文件夹。
Remove-Item 'D:\temp\test2' -Recurse
示例 3:在 -RemoveItem
中使用 -LiteralPath
-LiteralPath
与 -Force
和 -Recurse
参数一起使用。因此,它会在没有任何确认提示的情况下强制删除项目以及给定路径中的文件夹。
Remove-Item -LiteralPath "foldertodelete" -Force -Recurse
示例 4:Remove-item
作为管道
我们首先使用 Get-ChildItem 来检索文件夹和文件,然后我们使用 Remove-Item
来管道上一个命令的结果。
Get-ChildItem C:\Temp\TestFolder\ | Remove-Item -Recurse -Force -Verbose
这里唯一的问题是它只删除文件夹的内容,而不是文件夹本身;因此,必须添加其他代码片段才能删除该文件夹。
在 PowerShell 中使用命令提示符删除文件夹
大多数命令行用户将使用 rmdir
命令来删除或删除文件夹。语法是 rmdir
以及文件夹路径,如下所示。
rmdir C:\Temp\TestFolder
在 PowerShell 中使用 FileSystem
对象方法删除文件夹
PowerShell 中提供了用于删除文件夹的不同选项。其中之一是文件系统对象方法。此过程有两个阶段。第一步,我们将构造一个文件系统对象;接下来,在第二步中,我们将使用 DeleteFolder()
函数来销毁关联对象的文件夹。
所以要做到这一点,首先创建一个 test.ps1
文件,然后添加下面给出的以下命令。
$object = New-Object -ComObject Scripting.FileSystemObject
$object.DeleteFolder("C:\Temp\TestFolder")
最后,执行 test.ps1
文件,它将删除我们想要的文件夹。
在 PowerShell 中使用 .Net 类删除文件夹
在 PowerShell 中,.NET 框架使用 System.IO.Directory
类和 Delete()
方法来删除文件夹。如果提供的文件夹不为空,此操作将抛出异常:
> [System.IO.Directory]::Delete("C:\Temp\TestFolder")
要删除此非空文件夹,请使用 Delete()
函数中的 $true
选项:
System.IO.Directory]::Delete("C:\Temp\TestFolder", $true)
Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.