首页 > 解决方案 > 如何使用 Clear-Content 清空目录

问题描述

我有以下脚本:

New-Item -ItemType Directory -Force -Path .\bin\Release\SurvivalKit | Out-Null
#Clear-Content -Path .\bin\Release\SurvivalKit
Remove-item .\bin\Release\SurvivalKit\* -Recurse -Force

工作正常,Remove-ItemClear-Content导致访问被拒绝错误

PermissionDenied: (D:\dev\fromSVN...SurvivalKit:String) [Clear-Content], UnauthorizedAccessException

我的外壳是一个管理外壳。

是否可以Clear-Content用来清空目录?

标签: powershell

解决方案


Clear-Content尝试了 ,并将其指向一个目录C:\folder总是以 PermissionDenied 错误结束,即使权限正确 - 如果文件夹包含文件或即使它是空的,它也是一样的。

如果将其指向文件夹内容C:\folder\*,它将按预期工作并清除目录中文件的内容。

看起来您正试图将它用于它不能做的事情,Clear-Content 的文档没有说明它将删除项目(文件)的任何地方,只有项目内容:

Clear-Content cmdlet 删除项目的内容,例如从文件中删除文本,但它不会删除项目。结果,该项目存在,但它是空的。


所以Clear-Content会删除文件的内容,但不会删除文件本身。

如果你将它指向一个文件夹:

Clear-Content -Path C:\folder\*

其中的文件将保留,但它们都将被清除内容并成为空的“0KB”文件:

删除文件Remove-Item是正确的命令:

Remove-Item -Path C:\folder\*

推荐阅读