Quando si utilizza PowerShell di Remove-Item
per rimuovere una directory che non è vuota, verrà richiesto per la conferma:Come scegliere automaticamente "No" quando Remove-Item richiede conferma?
PS C:\Users\<redacted>\Desktop\Temp> Remove-Item .\Test
Confirm
The item at C:\Users\<redacted>\Desktop\Temp\Test has children and the Recurse parameter was not specified. If you
continue, all children will be removed with the item. Are you sure you want to continue?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"):
Se corro PowerShell in modalità non interattiva, ottengo un errore invece:
Remove-Item : Windows PowerShell is in NonInteractive mode. Read and Prompt functionality is not available.
At line:1 char:1
+ Remove-Item .\Test
+ ~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Remove-Item], PSInvalidOperationException
+ FullyQualifiedErrorId : InvalidOperation,Microsoft.PowerShell.Commands.RemoveItemCommand
So che posso usare -Recurse
per avere Remove-Item
procedere come se avessi scelto l'opzione "Sì". Posso in qualche modo procedere come se avessi scelto l'opzione "No"?
(Solo per chiarezza: -Force
e -Confirm:$false
non sono quello che voglio qui.)
Non voglio che venga visualizzato il messaggio di errore relativo alla modalità non interattiva, quindi sceglierò la seconda opzione. Pensandoci, prendere l'eccezione lanciata da Remove-Item è probabilmente la strada da percorrere comunque. (È strano che il messaggio di eccezione si stia lamentando della modalità non interattiva, non di una cartella non cancellabile.) –