Powershell 无法删除项目。目录不是空的

Powershell 无法删除项目。目录不是空的,powershell,windows-server-2012-r2,Powershell,Windows Server 2012 R2,我正在尝试删除包含子文件夹/文件的文件夹 Remove-Item -Force -Recurse -Path $directoryPath 我收到错误无法删除项目。目录不是空的。 MyPowershellScript.ps1的执行策略不受限制。 我尝试与当前登录用户一起删除的根文件夹对此文件夹具有完全权限 在我的本地pc上,该代码有效,但在我的Windows Server 2012 R2上无效您可以尝试以下操作: Remove-Item -Force -Recurse -Path "$dire

我正在尝试删除包含子文件夹/文件的文件夹

Remove-Item -Force -Recurse -Path $directoryPath
我收到错误
无法删除项目。目录不是空的。

MyPowershellScript.ps1的执行策略不受限制。 我尝试与当前登录用户一起删除的根文件夹对此文件夹具有完全权限


在我的本地pc上,该代码有效,但在我的
Windows Server 2012 R2上无效

您可以尝试以下操作:

Remove-Item -Force -Recurse -Path "$directoryPath\*"
注意:当在
删除项中使用
-Recurse
参数和
-Include
时,它可能不可靠。因此,最好先使用
Get ChildItem
递归文件,然后通过管道进入
Remove Item
。如果删除大型文件夹结构,这也可能会有所帮助

Get-ChildItem $directoryPath -Recurse | Remove-Item -Force   

文件已在另一个程序中打开

我忘了我打开了VisualStudio,同时打开了我的项目,并且得到了这个错误

关闭与该目录关联的所有文件,以管理员身份运行PowerShell,然后运行以下命令:

删除项目“C:\path\to\dir”-Recurse-Force

专业提示

也可以运行此命令打开文件资源管理器:

ii“C:\path\to\dir”


如果您右键单击并尝试删除它,可能会出现比命令行更详细的错误

这对我来说很有效,我递归地删除了比一年前旧的文件和文件夹,包括文件夹


Get-ChildItem-Directory-Path X:\AutomateCache | where对象{$\ Lastwritetime-ile(Get-date).AddMonths(-12)}| Remove Item-Force-Recurse-Verbose

您使用的PowerShell版本是什么?为什么
rm-Recurse
不可靠?@KolobCanyon在“示例4:递归删除子文件夹中的文件”一节中查看以下MSDN文章,其中提到递归参数不可靠@Richard该文档仅说明与
-Include
一起使用时
-Recurse
不可靠。在PS 5.1中尝试
获取ChildItem$directoryPath-Recurse | Remove Item-Force
时,我收到确认提示,以确认我确实想要删除目录,并且我得到了零星的
目录不为空的
错误。我猜这可能是因为我正在删除非常大和复杂的文件结构
Get ChildItem$directoryPath-Recurse | Remove Item-Force-Recurse
似乎可以解决这些问题。+++1是的,您必须确保目录中的任何文件都没有被锁定,否则将出现此错误。我甚至在powershell中打开一个子目录时看到这个错误弹出。我也遇到了同样的问题。要解决这个问题,我必须在安全模式下运行Windows10(要激活安全模式,请使用以下命令行:bcdedit/set bootmenupolicy legacy)+我必须重命名所有文件层次结构。