2016-07-01 49 views
13

Sto tentando di eliminare una cartella con sottocartelle/file.Impossibile rimuovere l'elemento. La directory non è vuota

Remove-Item -Force -Recurse -Path $directoryPath 

sto ottenendo l'errore Cannot remove item. The directory is not empty.

mio PowershellScript.ps1 ha executionpolicy senza restrizioni. La cartella radice che cerco di cancellare con l'utente attualmente loggato ha il permesso completo su questa cartella.

Sul mio pc locale il codice funziona ma non sul mio Windows Server 2012 R2.

risposta

14

si potrebbe provare la seguente:

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

Ma il parametro -Recurse in Remove-Item non funziona sempre correttamente in modo che fosse meglio recurse i file prima con Get-ChildItem poi pipe loro di Remove-Item.

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

Ho letto su SO che nel mio caso il -Recurse dovrebbe funzionare correttamente. – HelloWorld

+0

Quale versione di PowerShell stai usando? – Richard

+0

PSVersion è 4.0 ma sembra che il messaggio di errore originale potrebbe essere fuorviante o nascondere il vero bug. Quando rimuovo la transazione SQLCMD dai miei inserttstatementscripts.bat eseguiti, la cartella root può essere cancellata !!! Sembra che la transazione SQLCMD + all'interno di PowerShell stia eseguendo l'asincrona ... e SqlCmd non aspetta. – HelloWorld