47

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"?

7 Answers 7

71

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.

Sign up to request clarification or add additional context in comments.

2 Comments

So if you want it to delete but not delete, and just raise an error when it's a directory you also have to test for it being a directory separately.
@WarrenP What behavior exactly are you looking for? If you tell PowerShell to delete a directory, it will delete it. Unless it's not empty, then the behavior will be as described.
35

Add -confirm:$false to suppress confirmation.

2 Comments

This WILL NOT work. -Confirm is for forcing confirmation. Having it off just runs the normal decision logic.
do you use -force -confirm:$false ?
29

Try using the -Force parameter on Remove-Item.

1 Comment

please see below answers for a more comprehensive answer to this problem.
11

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}

1 Comment

-recurse prevents confirmation for removing non empty folders. Thanks.
7
Remove-Item .\foldertodelete -Force -Recurse

Comments

1

Just an additional tip: Let's say the PS1 (helloworld.ps1) has a code like below:

Set-ExecutionPolicy Unrestricted -Confirm:$false -Force
Write-Host "Hello, World!"

And if we expect that each time the code runs, it would automatically run the Set-ExecutionPolicy without prompting the user & run the code silently...

It won't work that way!! I'm still figuring out how to run a PS code without prompting the user & will post the solution if I find out

Comments

0

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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.