【问题标题】:How do I automatically answer "yes" to a prompt in Powershell?如何在 Powershell 中自动对提示回答“是”?
【发布时间】:2012-12-13 19:22:49
【问题描述】:

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

我正在运行的脚本在

处停止

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

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

【问题讨论】:

  • 需要更多上下文,例如 cfgsave 是什么?是你写的东西还是你只是想用 Powershell 来运行它。如果没有 Powershell,cfgsave 将如何工作,听起来它会显示一个带有“是”按钮的窗口?
  • 这是在寻求一种将输入传递给 shell 提示符的方法。

标签: powershell


【解决方案1】:

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

ECHO Y | RSKeyMgmt.exe...

没有提示问题,命令执行正确。

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

【讨论】:

    【解决方案2】:

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

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

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

    最终解决问题的是:

    Powershell-Cmdlet -Confirm:$false
    

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

    【讨论】:

      【解决方案3】:

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

      ECHO Y | powershell Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
      

      【讨论】:

        【解决方案4】:

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

        Cmd /c "GpUpdate.exe /FORCE <C:\temp\response.txt"
        
        ECHO 'Y' | GpUpdate.exe /FORCE
        
        Get-Content "C:\temp\response.txt" | GpUpdate.exe /FORCE
        

        【讨论】:

        • 我只是使用powershell来运行它。 CFGsave 是在交换机上运行的外部命令。我想从 powershell 运行这个命令,而不必回答是或否。还要感谢 JP,但如果存在,我更喜欢 powershell 解决方法。 :) 对我的学习比什么都重要。
        【解决方案5】:

        以下 Powershell 对我有用:

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

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

        【讨论】:

        • echo 是 write-output 的别名
        【解决方案6】:

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

        net use * /delete
        

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

        net use * /delete /y
        

        也许每个命令都有一个静默确认。

        【讨论】:

          【解决方案7】:

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

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

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

          【讨论】:

            【解决方案8】:

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

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2021-08-24
              • 2022-09-26
              • 1970-01-01
              • 2018-09-26
              • 2012-05-15
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多