2016-07-01 7 views
13

Ich versuche, einen Ordner mit Unterordnern/Dateien zu löschen.Element kann nicht entfernt werden. Das Verzeichnis ist nicht leer

Remove-Item -Force -Recurse -Path $directoryPath 

Ich erhalte den Fehler Cannot remove item. The directory is not empty.

Mein PowershellScript.ps1ExecutionPolicy uneingeschränkte hat. Der Stammordner, den ich mit dem aktuell angemeldeten Benutzer löschen möchte, hat volle Berechtigung für diesen Ordner.

Auf meinem lokalen PC funktioniert der Code aber nicht auf meinem Windows Server 2012 R2.

Antwort

14

könnten Sie versuchen, die folgenden:

Remove-Item -Force -Recurse -Path "$directoryPath\*" 

Aber der -Recurse Parameter in Remove-Item funktioniert nicht immer korrekt, so ist es am besten, die Dateien Rekursion sie zuerst mit Get-ChildItem dann Rohr Remove-Item.

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

Ich las auf SO, dass in meinem Fall die -Recurse gut funktionieren sollte. – HelloWorld

+0

Welche PowerShell-Version verwenden Sie? – Richard

+0

PSVersion ist 4.0 aber es scheint, dass die ursprüngliche Fehlermeldung irreführend ist oder den echten Fehler versteckt. Wenn ich die SQLCMD-Transaktion von meiner ausgeführten insertstatementscripts.bat entferne, kann der Stammordner gelöscht werden !!! Es scheint, dass SQLCMD + -Transaktion in Powershell asynchrone Ausführung ausführt ... und SqlCmd nicht wartet. – HelloWorld