用于删除以'.'开头的文件夹的 Powershell 脚本不起作用 - 为什么?



我编写了一个简单的powershell脚本,用于删除特定的文件夹:

gci -include .vs -recurse | remove-item -force -recurse

但是.vs文件夹不会被删除(如果点被删除,那么名为"vs"的文件夹也会被删除(。我一定是错过了什么。

$PSVersionTable.PSVersion

返回报告:

Major  Minor  Build  Revision
-----  -----  -----  --------
5      1      16299  666

我通过文件资源管理器运行脚本,ala‘右键单击->运行Powershell脚本’。不知道这是否会使脚本在最新、最棒的powershell版本下运行。

更新:

事实证明,罪魁祸首是.vs文件夹被标记为"只读"。由于某些原因,即使确实指定了"-force"标志,powershell脚本也无法删除它。对此有什么办法吗?

您在注释中提到,要删除的目录同时设置了HiddenReadOnly文件系统属性。

虽然Remove-Item调用中的-Force能够强制删除具有ReadOnly属性的项目,但您的输入Get-ChildItem调用也需要-Force,否则它将找不到隐藏的文件和文件夹,因此Remove-Item也永远看不到它们:

# Note the -Force added to Get-ChildItem.
Get-ChildItem -Force -Include .vs -Recurse | Remove-Item -Force -Recurse -WhatIf

最新更新