问题
I'm running the following command:
get-childitem C:\temp\ -exclude *.svn-base,".svn" -recurse | foreach ($_) {remove-item $_.fullname}
Which prompts me very frequently like this:
Confirm
The item at C:\temp\f\a\d 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"):
How can I have it automatically set to "A"?
回答1:
Try using the -Force
parameter on Remove-Item
.
回答2:
The default is: no prompt.
You can enable it with -Confirm
or disable it with -Confirm:$false
However, it will still prompt, when the target:
- is a directory
- and it is not empty
- and the
-Recurse
parameter is not specified.
-Force
is required to also remove hidden and read-only items etc.
To sum it up:
Remove-Item -Recurse -Force -Confirm:$false
...should cover all scenarios.
回答3:
Add -confirm:$false to suppress confirmation.
回答4:
Add -recurse after the remove-item, also the -force parameter helps remove hidden files e.g.:
gci C:\temp\ -exclude *.svn-base,".svn" -recurse | %{ri $_ -force -recurse}
回答5:
Remove-Item .\foldertodelete -Force -Recurse
回答6:
You just need to add a /A
behind the line.
Example:
get-childitem C:\temp\ -exclude *.svn-base,".svn" -recurse | foreach ($_) {remove-item $_.fullname} /a
来源:https://stackoverflow.com/questions/4753702/automatic-confirmation-of-deletion-in-powershell