prosource

Powershell에서 프롬프트에 자동으로 "예"라고 대답하려면 어떻게 해야 합니까?

probook 2023. 8. 6. 10:10
반응형

Powershell에서 프롬프트에 자동으로 "예"라고 대답하려면 어떻게 해야 합니까?

PowerShell 세션에서 대화형 질문에 대한 대답으로 "예"를 입력하려면 어떻게 해야 합니까?로 요아알, 선에바시선.Yes프롬프트에서 "예"라고 대답하는 도구입니다.저의 상황에서는, 저는 그 프롬프트를 억제할 수 없습니다.

실행 중인 스크립트가 중지됩니다.

계속하려면 "예"라고 대답하십시오.

powershell이 어떻게 스크립트를 실행하고 프롬프트가 표시될 때 "예"라고 대답할 수 있습니까?

ECHO를 사용하는 것은 저에게 효과가 있었습니다.Powershell 스크립트에서 RSKeyMgmt.exe를 실행하고 있는데 Yes(Y)/No(N)라는 메시지가 표시되었습니다.그래서 내가 할 때

ECHO Y | RSKeyMgmt.exe...

질문에 대한 프롬프트가 표시되지 않았으며 명령이 올바르게 실행되었습니다.

그래서 제 생각엔ECHO 'someoption'다른 경우에도 효과가 있어야 합니다.

저도 같은 문제를 겪고 있었습니다.제가 시도한 솔루션은 다음과 같습니다.

  • ECHO 'Y' |
  • 명령 - 이름 - 강제 실행
  • $기본 설정 확인 = '없음'

하지만, 그들 중 누구도 그 속임수를 쓰는 것 같지 않았습니다.

결국 문제를 해결한 것은 다음과 같습니다.

Powershell-Cmdlet -Confirm:$false

명령이 실행되는 동안 모든 확인 프롬프트가 표시되지 않으며 명령은 확인 없이 처리됩니다.

다음은 다른 답변에서 영감을 얻은 예입니다.

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

다음과 같은 오래된 패션 방식을 테스트할 수 있습니다.

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

ECHO 'Y' | GpUpdate.exe /FORCE

Get-Content "C:\temp\response.txt" | GpUpdate.exe /FORCE

다음과 같은 문제를 사용하려고 했습니다.

net use * /delete

항상 Y/N에 대한 프롬프트를 표시하고 여기에 있는 솔루션을 시도했지만 아무 것도 효과가 없었기 때문에 저는 무엇이 효과가 있었는지 보고합니다.

net use * /delete /y

아마 모든 명령어는 자동 확인 기능을 가지고 있을 것입니다.

이것은 "신뢰할 수 없는 소스"에서 무언가를 설치할 때 효과가 있었습니다.

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

Windows Update powershell 도구 세트를 프로그래밍 방식으로 설치하려고 했습니다 :)

Azure CLI 명령의 경우 --yes가 옵션인 경우가 많습니다.

Disable-NetAdapter -name "Wi-Fi" -Confirm:$false

이는 PowerShell을 사용한 시나리오에서 효과가 있었습니다.

저도 비슷한 문제가 있었지만, 예/아니오 옵션만은 아니었습니다.여러 옵션을 선택하도록 요청하는 스크립트가 몇 개 있었는데 자동화된 스크립트에 포함하려고 했습니다.프롬프트는 다음과 같습니다.

Select Option
What option do you want to use:
[A] Option A  [B] Option B  [C] Option C  [?] Help (default is "A"):

이것이 효과가 있다는 것을 알았습니다.

Echo A | powershell.exe ./script.ps1

Echo는 단순히 'Write-Output'의 별칭입니다.프롬프트가 둘 이상인 경우 다음과 같은 공백으로 입력을 구분할 수 있습니다.

Echo A F G

나는 왜 내가 단지 에코를 스크립트에 전달하는 대신 powershell.exe를 포함해야 했는지 모르겠습니다.

echo 명령을 앞에 놓는 대신 (뒤에 이어지는 모든 입력을 반향시키거나 파이프에 대한 오류를 던질 것입니다) 저는 끝에 echo 명령을 넣었고 그것은 작동했습니다.

Install-Module -Name DisplaySettings | ECHO Y 

- 확인: $false - 이 장치는 정상적으로 작동합니다.

성가신 스타트업 프로그램을 죽이려다가 Stop-Process 및/또는 프로그램이 파이프 입력을 수락하지 않는다는 것을 발견했습니다(나에게는 Echo Y |!). 하지만 JP의 대답을 조금 바꿨습니다.Stop-Process -name [ program.name ] -Force ; 관리자로 실행되었으며 매력적으로 작동했습니다.

다음 Powershell이 저에게 도움이 되었습니다.

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

그러면 'Y' 문자가 다음 파이프라인 개체로 출력됩니다.

언급URL : https://stackoverflow.com/questions/14071012/how-do-i-automatically-answer-yes-to-a-prompt-in-powershell

반응형