问题
I am trying to delete a folder with subfolders/files.
Remove-Item -Force -Recurse -Path $directoryPath
I am getting the error Cannot remove item. The directory is not empty.
My PowershellScript.ps1 has executionPolicy unrestricted. The root folder I try to delete with the current logged in user has full permission on this folder.
On my local pc the code works but not on my Windows Server 2012 R2
.
回答1:
You could try the following:
Remove-Item -Force -Recurse -Path "$directoryPath\*"
Note when using the -Recurse
parameter with -Include
in Remove-Item
, it can be unreliable. So it's best to recurse the files first with Get-ChildItem
and then pipe into Remove-Item
. This may also help if you deleting large folder structures.
Get-ChildItem $directoryPath -Recurse | Remove-Item -Force
回答2:
File is open in another program
I forgot that I had Visual Studio open with my project open and was getting this error.
Close any files associated with that directory, run PowerShell as admin, then run the command:
Remove-Item "C:\path\to\dir" -Recurse -Force
Pro Tip
You can also run this command to open file explorer:
ii "C:\path\to\dir"
If you right click and try to delete it, it might give you a more verbose error than command line.
回答3:
this worked for me where i deleted files and folders older then i year recursively including folders.
Get-ChildItem -Directory -Path X:\AutomateCache | where-Object {$_.Lastwritetime -ile (get-date).AddMonths(-12) } | Remove-Item -Force -Recurse -Verbose
来源:https://stackoverflow.com/questions/38141528/cannot-remove-item-the-directory-is-not-empty