27

如何在 PowerShell 会话中输入“是”作为交互式问题的答案?我知道,在 Bash 中,Yes是在提示符下回答“是”的工具。在我的情况下,我无法抑制提示。

我正在运行的脚本停在

如果您想继续,请回复“是”:

powershell如何运行脚本并在提示时“回答”是?

4

9 回答 9

15

使用 ECHO 对我有用。我在我的 Powershell 脚本中运行 RSKeyMgmt.exe,它提示 Yes(Y)/No(N)。所以当我这样做的时候

ECHO Y | RSKeyMgmt.exe...

它没有提示问题并且命令被正确执行。

所以我认为ECHO 'someoption'也应该适用于其他情况。

于 2017-08-10T21:19:16.047 回答
10

我也有同样的问题。我尝试的解决方案包括:

  • 回声'Y' |
  • 命令名称-Force
  • $ConfirmPreference = '无'

然而,他们似乎都没有成功。

最终解决问题的是:

Powershell-Cmdlet -Confirm:$false

它会在命令执行期间抑制所有确认提示,并且该命令将在没有任何确认的情况下被处理。

于 2020-05-18T18:42:03.720 回答
8

受其他答案的启发,这是我的示例:

ECHO Y | powershell Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
于 2019-09-20T03:17:39.740 回答
5

您可以测试这些老式方式:

Cmd /c "GpUpdate.exe /FORCE <C:\temp\response.txt"

ECHO 'Y' | GpUpdate.exe /FORCE

Get-Content "C:\temp\response.txt" | GpUpdate.exe /FORCE
于 2012-12-28T21:53:40.653 回答
0

对于 Azure CLI 命令 --yes 通常是一个选项。

于 2022-02-28T19:02:00.320 回答
0

以下 Powershell 对我有用:

Write-Output 'Y' | .\plink.exe <ip_address> -l <username> -pw <password>

这会将“Y”字符输出到下一个管道对象。

于 2021-02-19T03:42:26.353 回答
0

我尝试使用时遇到了同样的问题:

net use * /delete

它总是提示我输入 Y/N 并尝试了这里的解决方案,但没有一个奏效,所以我报告了对我有用的方法:

net use * /delete /y

也许每个命令都有一个无声的确认。

于 2021-03-08T20:55:42.813 回答
0

从“不受信任的来源”安装某些东西时,这对我有用:

ECHO Y | powershell Install-Module -Name PSWindowsUpdate | ECHO Y

我试图以编程方式安装 Windows Update powershell 工具集:)

于 2021-10-13T17:05:39.717 回答
-1

我试图杀死一个讨厌的启动程序,发现 Stop-Process 和/或程序不接受管道输入(没有 Echo Y | 对我来说!)但我改变了 JP 的答案:Stop-Process -name [program.name] -Force ; 以管理员身份运行,它就像一个魅力。

于 2020-03-26T06:52:57.220 回答