[玩转系统] 如何使用 PowerShell Remove-Item 删除文件夹
作者:精品下载站 日期:2024-12-14 06:32:15 浏览:15 分类:玩电脑
如何使用 PowerShell Remove-Item 删除文件夹
删除文件夹和清理目录可能是一项耗时的任务,尤其是当您需要在多台计算机上执行相同的任务时。使用PowerShell,我们可以轻松创建一个小脚本来查找和删除您想要的所有文件夹。
PowerShell的优点在于它允许我们不仅删除单个文件夹,还可以删除完整的目录或仅删除具有特定名称的文件夹。例如,也可以仅删除空文件夹。
在本文中,我们将了解如何使用 PowerShell 删除文件夹,以及如何使用不同的选项仅删除特定文件夹。
使用 PowerShell 删除文件夹
要使用 PowerShell 删除文件夹,我们需要使用 Remove-Item
cmdlet。此 cmdlet 不仅可用于删除文件夹,还可用于删除文件、注册表项等。我们将在本文中重点讨论删除文件夹。
Remove-Item cmdlet 带有几个参数,我们可以使用它们来指定要删除的文件夹:
-Path指定需要删除的项目的路径。
-LiteralPath项目的确切路径
-Include指定要包含的路径元素,例如 *.txt
-Exclude指定要排除的路径元素,例如 *.txt
-Recurse删除指定位置和所有子文件夹中的项目
-Force用于删除只读文件或隐藏项目
-Confirm提示确认
-WhatIf在测试模式下运行命令。不会删除任何东西
要在 PowerShell 中删除单个文件夹,我们需要指定该文件夹的完整路径。值得高兴的是,即使您没有指定 -recurse
参数,此命令也会删除其中包含所有内容的文件夹。如果您没有使用 -recurse
参数并且文件夹包含内容,您将会收到警告。
因此,在实际删除文件夹之前检查文件夹是否正确非常重要。这就是为什么我建议首先使用 -WhatIf
参数运行命令来检查结果:
# Remove the folder D:\testfiles\folder in test mode
Remove-Item -Path "D:\testfiles\folder" -WhatIf
在下面的示例中,该文件夹不为空。因此,我们需要确认我们要删除该文件夹和内容。
最后一行 What If 显示了在目标路径上执行的操作:
我们还可以强制显示确认提示,而不是 -WhatIf
。这样,您仍然可以仔细检查是否要删除正确的文件夹,并在删除之前确认操作。
Remove-Item -Path "D:\testfiles\empty folder" -Confirm
# Result:
Confirm
Are you sure you want to perform this action?
Performing the operation "Remove Directory" on target "D:\testfiles\empty folder".
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"):
删除文件夹和内容
当您想要使用 PowerShell 删除文件夹及其所有内容时,必须使用 -Recurse
参数。这样,给定目录中的所有子文件夹和文件都将被删除。该参数不会发出警告,只会删除所有内容。
以下命令将删除“文件夹 A”及其内容:
# Delete folder A and all contents
Remove-Item -Path "D:\testfiles\folder A" -Recurse
如果您只想删除“文件夹 A”内的所有内容,那么我们必须在 -path
参数中使用通配符:
# Delete all subfolders and content inside Folder A
Remove-Item -Path "D:\testfiles\folder A\*" -Recurse
强制删除文件夹
当您尝试删除包含只读项目或正在使用的项目的文件夹时,您将收到一条错误消息,表明您没有足够的访问权限来执行此操作。
要删除包含只读项目、隐藏文件或正在使用的文件的文件夹,可以使用 -Force
参数:
Remove-Item -Path "D:\testfiles\folder B" -Force
# or in short:
rm -r -force "D:\testfiles\folder"
删除多个文件夹
要使用单个命令删除多个文件夹,我们可以指定多个路径或使用其中一个过滤选项。我将在本文后面解释过滤器。您可以使用逗号分隔的字符串指定要删除的多个文件夹:
Remove-Item -Path "D:\testfiles\folder d", "D:\testfiles\folder e" -Recurse
另一种选择是创建一个包含所有路径的数组,并使用 foreach 语句循环遍历它们。
删除文件夹(如果存在)
在脚本内使用 Remove-Item
cmdlet 时,最好在尝试删除文件夹之前测试该文件夹是否存在。我们可以使用 Test-Path cmdlet 来完成此操作。这将检查文件夹是否存在,并根据结果返回 true
或 false
。通过在 if 语句中使用它,我们可以确保仅当文件夹存在时才将其删除:
$folder = "D:\testfiles\folder B"
if (Test-Path -Path $folder ) {
Remove-Item -Path $folder
}
在 PowerShell 中使用过滤器删除文件夹
我们现在已经了解了使用 PowerShell 删除文件夹的基本原理。但是,除了从特定路径删除文件夹之外,您还经常遇到需要删除所有超过 x 天或文件夹名称中包含特定单词的文件夹的情况。
有几种方法可以仅选择我们需要在 PowerShell 中删除的文件夹。但对于所有方法,请确保在实际删除文件夹之前先测试选择。
使用包含过滤器
-include
过滤器允许您指定要删除的文件或文件夹必须包含的字符串部分。它与路径中的通配符结合使用。
这里需要注意的是,包含给定名称的文件和文件夹都将被删除。例如,要删除其中包含单词 test 的所有文件夹(以及文件):
Remove-Item -Path "D:\testfiles\folder c\*" -Include "*test*"
您还可以为包含过滤器指定多个关键字,只需用逗号分隔即可。
使用排除过滤器
使用 -exclude
过滤器,我们可以删除特定文件夹中的所有内容,但名称中包含指定单词的文件夹除外。同样,过滤器适用于文件和文件夹,因此所有与过滤器匹配的文件都不会被删除。
例如,要删除指定路径中的所有文件和文件夹,除了文件夹“la-test-folder”中的内容之外,我们可以这样做:
Remove-Item -Path "D:\testfiles\folder c\*" -Exclude "la-test-folder"
就像包含过滤器一样,您可以在排除字符串中使用通配符,或特定的多个字符串(文件夹名称)来匹配。
删除早于以下时间的文件夹
一种很常见的情况是删除所有超过 x 天的文件夹。为此,我们首先需要计算文件夹日期。假设我们要删除所有超过 30 天的文件夹。第一步是获取 30 天前的日期:
# Get the date from today minus 30 days
$dateTime = (Get-Date).AddDays(-30)
下一步是获取给定路径中早于给定日期的所有文件夹。我们可以通过将文件夹的 lastwritetime
与我们计算的 datetime
进行比较来做到这一点:
Get-ChildItem -Path $Path -Recurse -Directory | Where-Object { $_.LastWriteTime -lt $dateTime }
现在,我们只需在其后面通过管道传递Remove-Item cmdlet 即可实际删除该文件夹及其内容。在实际删除文件夹之前,再次首先使用 -WhatIf
参数测试结果。
$dateTime = (Get-Date).AddDays(-30)
$path = "d:\testfiles\"
Get-ChildItem -Path $Path -Recurse -Directory | Where-Object { $_.LastWriteTime -lt $dateTime } | Remove-Item -Recurse -WhatIf
删除空文件夹
要使用 PowerShell 仅删除空文件夹,您需要创建一个小脚本。该脚本需要检查给定文件夹中的每个子文件夹是否包含项目。只有当它不包含任何项目时才能删除该文件夹。
我创建了一个脚本,您可以使用它来删除空文件夹,您可以在本文中找到该脚本。
包起来
当您需要删除多个文件夹或想要自动清理特定目录时,PowerShell 是一个很棒的工具。请记住,Remove-Item cmdlet 还用于删除文件,因此请确保在使用脚本之前对其进行测试。
另外,请记住,您的文件将被永久删除,它们不会进入回收站。
我希望这篇文章对您有用,如果您有任何疑问,请在下面发表评论。
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag