Reputation: 497
How can I input "yes" as an answer to an interactive question in a PowerShell session? I know, in Bash, Yes
is the tool to answer "yes" on the prompt. In my situation, I can't suppress the prompt.
The script I'm running stops at
Please reply "yes" if you want to continue:
How powershell can run the script and "answer" yes when pompted?
Upvotes: 47
Views: 151139
Reputation: 1
The Universally correct answer is:
BTW, for that command all other solutions fail and if you think about it logically you will know this is the correct answer. Of course, edit the 'Y' on a per command basis; some might like y, others yes, t, T, True etc...
Upvotes: -1
Reputation: 11
Instead of putting the echo command in the front, (which will just echo all following inputs, or throw an error about the pipe) I put it at the end and that worked.
Install-Module -Name DisplaySettings | ECHO Y
Upvotes: 1
Reputation: 21
I had a similar problem but it wasn't just a yes/no option. I had some scripts that prompted for a choice of multiple options and I wanted to include them in some automated scripts. The prompts were something like this:
Select Option
What option do you want to use:
[A] Option A [B] Option B [C] Option C [?] Help (default is "A"):
I found that this worked:
Echo A | powershell.exe ./script.ps1
Echo is simply an alias for 'Write-Output'. If there were more than one prompt, I could simply separate the inputs with a space like:
Echo A F G
I don't know why I needed to include the powershell.exe instead of just passing in the echo into the script.
Upvotes: 2
Reputation: 1
Disable-NetAdapter -name "Wi-Fi" -Confirm:$false
This worked for me in this scenario with PowerShell.
Upvotes: 0
Reputation: 1
This worked for me when installing something from an "untrusted source":
ECHO Y | powershell Install-Module -Name PSWindowsUpdate | ECHO Y
I was trying to programmatically install the Windows Update powershell tool set :)
Upvotes: 0
Reputation: 1
I had the same issue trying to use:
net use * /delete
It always prompeted me for a Y/N and tried the solutions in here but none worked, so I'm reporting what worked for me:
net use * /delete /y
Maybe every command has a silent confirmation.
Upvotes: -1
Reputation: 165
The following Powershell worked for me:
Write-Output 'Y' | .\plink.exe <ip_address> -l <username> -pw <password>
This will output the 'Y' character to the next pipeline object.
Upvotes: -2
Reputation: 435
I was also having the same issue. The solutions tried by me included:
However, none of them seemed to do the trick.
What finally solved the problem was:
Powershell-Cmdlet -Confirm:$false
It suppresses all confirmation prompts for the duration of the command and the command would be processed without any confirmation.
Upvotes: 27
Reputation: 1
I was trying to kill a pesky startup program and found that the Stop-Process and / or the program would not accept a piped input (no Echo Y | for me!) but I changed JPs answer a little bit: Stop-Process -name [program.name] -Force ; ran as administrator and it worked like a charm.
Upvotes: -2
Reputation: 211
Inspired by other answers, here is my example:
ECHO Y | powershell Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
Upvotes: 13
Reputation: 835
Using ECHO worked for me. I am running RSKeyMgmt.exe in my Powershell script and it prompted Yes(Y)/ No(N). So when I do
ECHO Y | RSKeyMgmt.exe...
It did not prompt the question and the command was executed correctly.
So I think ECHO 'someoption'
should work for other cases too.
Upvotes: 24
Reputation: 72630
You can test these old fashion ways :
Cmd /c "GpUpdate.exe /FORCE <C:\temp\response.txt"
ECHO 'Y' | GpUpdate.exe /FORCE
Get-Content "C:\temp\response.txt" | GpUpdate.exe /FORCE
Upvotes: 9