当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] PowerShell 删除文件夹 |如何在PowerShell中删除文件夹?

作者:精品下载站 日期:2024-12-14 04:49:06 浏览:17 分类:玩电脑

PowerShell 删除文件夹 |如何在PowerShell中删除文件夹?


[玩转系统] PowerShell 删除文件夹 |如何在PowerShell中删除文件夹?

PowerShell删除文件夹简介

PowerShell 文件夹删除操作是使用 cmdlet Remove-Item 或其他 .Net 方法从指定位置删除文件夹,无论是本地路径还是共享路径,该方法执行删除文件夹或子文件夹及其内容并使用特定的切换以处理不同类型的文件夹属性,如只读、隐藏等以删除它们。

PowerShell 删除文件夹的语法

PowerShell 使用各种方法从 Windows 操作系统中删除文件夹。

1. PowerShell删除项目方法

语法:

Remove-Item

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

Remove-Item

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

从以上几组中,您只能使用其中一组的组合。您不能在同一命令中同时使用 -Path 和 -LiteralPath。

2. 命令提示符

  • 使用 rmdir 命令
rmdir [<drive>:]<path> [/s [/q]]
  • 使用删除
del [/p] [/f] [/s] [/q] [/a[:]<attributes>] <names>
erase [/p] [/f] [/s] [/q] [/a[:]<attributes>] <names>

3. 文件系统对象方法

使用文件系统对象方法。我们可以创建一个文件系统对象并使用DeleteFolder方法。

object.DeleteFolder folderspec, [ force ]

4.使用.Net类方法

[System.IO.Directory]::Delete(String)
[System.IO.Directory]::Delete(String,Boolean)

如何在PowerShell中删除文件夹?

如语法所示,PowerShell 使用多种方法从文件夹中删除文件,例如本机命令 Remove-Item、cmd 命令 rmdir 和 del、文件系统对象方法和 .Net 方法。

Window System 文件夹具有与其关联的各种属性,例如只读、隐藏、存档等,要删除它们,我们可能需要在 cmdlet 中传递各种参数。

PowerShell删除文件夹的实现示例

下面我们讨论 PowerShell 删除文件夹的示例:

例子#1

删除项目删除包含子文件夹和文件的文件夹

假设我们有一个文件夹存储在 C:\temp\Test\ 位置,我们需要使用“Remove-Item”命令删除该文件夹。该文件夹包含以下项目。

命令:

Get-ChildItem C:\Temp\Test\

输出:

[玩转系统] PowerShell 删除文件夹 |如何在PowerShell中删除文件夹?

要删除这些项目,

Remove-Item C:\Temp\Test\ -Verbose

运行此命令后,它将要求确认。

[玩转系统] PowerShell 删除文件夹 |如何在PowerShell中删除文件夹?

您可以每次按“是”或“全部是”来确认所有文件和文件夹。

产生此提示是因为Test文件夹包含子文件夹和文件,使用-Recurse参数删除所有内部文件和文件夹,使用-Force参数强制删除它们。

Remove-Item C:\Temp\Test\ -Recurse -Force -Verbose

输出:

[玩转系统] PowerShell 删除文件夹 |如何在PowerShell中删除文件夹?

例子#2

将 -WhatIF 参数与 Remove-Item 一起使用以避免错误的文件夹删除。我们可以使用 -WhatIf 参数来显示哪些文件和文件夹将被删除,以避免任何错误的文件夹删除。请参阅下面的示例。

Remove-Item C:\Temp\Test\ -Recurse -Force -WhatIf -Verbose

输出:

[玩转系统] PowerShell 删除文件夹 |如何在PowerShell中删除文件夹?

如果您有权删除远程文件夹,则可以提供该文件夹的共享路径。例如,

Remove-Item '\Computer1\C$\Temp\Test\' -Recurse -Force -WhatIf -Verbose

上述命令将删除远程计算机 Computer1 上的 C:\temp\Test 文件夹。

例子#3

使用Remove-Item作为管道。我们可以使用 Get-ChildItem 和 Remove-Item 检索文件和文件夹内容,以管道方式输出第一个删除文件夹的命令。

Get-ChildItem C:\Temp\Test\ | Remove-Item -Recurse -Force -Verbose

这种方法的问题是它删除了文件夹的内容,但没有删除文件夹本身。您需要添加更多逻辑来删除,但如果您想删除父文件夹内的特定子文件夹,那么此方法很有用,我们将在示例8中看到。

例子#4

使用cmd命令删除该文件夹。

  • 使用德尔

当我们使用 Del 命令时,它只会删除内部文件和文件夹,但将原始文件夹留空。

del c:\Temp\Test\

当您运行此命令删除test文件夹内容时,会提示删除。

[玩转系统] PowerShell 删除文件夹 |如何在PowerShell中删除文件夹?

要删除子文件夹、文件(包括只读文件),请强制使用以下命令。

c:\>del c:\Temp\Test /s /q /f

输出:

[玩转系统] PowerShell 删除文件夹 |如何在PowerShell中删除文件夹?

  • 使用 rmdir 代替 del 删除文件夹
rmdir C:\Temp\Test

当您运行上述命令时,您将收到如下消息,因为该目录包含子文件夹和文件。

[玩转系统] PowerShell 删除文件夹 |如何在PowerShell中删除文件夹?

使用以下命令以安静模式删除指定的文件夹、子文件夹和文件。

c:\>rmdir C:\Temp\Test /s /q

例子#5

使用文件系统对象方法。我们还可以使用 ComObject FileSystemObject 删除该文件夹,如下所示。

$obj = New-Object -ComObject Scripting.FileSystemObject
$obj.DeleteFolder("C:\Temp\Test")

例子#6

使用.Net类方法。我们可以使用 .Net 类 System.IO.Directory 和 Delete() 方法来删除该文件夹。

例如:

PS C:\> [System.IO.Directory]::Delete("C:\Temp\Test")

当您运行上述命令时,它会抛出目录不为空的异常,因为上述命令的目的是删除空目录。

[玩转系统] PowerShell 删除文件夹 |如何在PowerShell中删除文件夹?

因此,要删除文件夹,请添加第二个参数 $true 来删除不为空的文件夹。

[System.IO.Directory]::Delete("C:\Temp\Test", $true)

例子#7

使用 PowerShell DSC 删除该文件夹。使用声明式方法 DSC 删除该文件夹。

Configuration FolderDelete{
Node Localhost{
File TestFolderDelete{
DestinationPath = 'C:\Temp\Test'
Type = 'Directory'
Ensure = 'Absent'
Force = $true
}
}
}
FolderDelete -OutputPath C:\Temp\FolderDelete\ -Verbose
Start-DscConfiguration -Path C:\Temp\FolderDelete -Wait -Force -Verbose

输出:

[玩转系统] PowerShell 删除文件夹 |如何在PowerShell中删除文件夹?

上面的命令会将配置存储在 C:\temp\FolderDelete 中,并在运行脚本之前确保该路径存在,它将生成 MOF 文件。

您还可以在“节点”部分中提供远程节点,例如

Node @("Computer1","Computer2")

例子#8

使用 PowerShell 删除隐藏文件夹。要删除隐藏文件夹,我们首先需要使用 Get-ChildItem 检索隐藏文件夹。

Get-ChildItem C:\Temp\Test\ -Hidden

输出:

[玩转系统] PowerShell 删除文件夹 |如何在PowerShell中删除文件夹?

我们将附加删除项作为管道来删除该隐藏文件夹。

Get-ChildItem C:\Temp\Test\ -Hidden | Remove-Item -Force -Recurse -Verbose

输出:

[玩转系统] PowerShell 删除文件夹 |如何在PowerShell中删除文件夹?

结论

Windows文件资源管理器用于与文件系统文件和文件夹进行交互,但由于各种原因,我们在编写脚本时需要删除文件夹,或者为了系统的定期维护,我们需要删除文件夹以释放额外的空间,我们可以使用本文介绍的方法。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯