program story

Powershell ISE의 ​​스크립트에 필요한 매개 변수를 전달하는 방법은 무엇입니까?

inputbox 2020. 11. 5. 08:00
반응형

Powershell ISE의 ​​스크립트에 필요한 매개 변수를 전달하는 방법은 무엇입니까?


제목을 참조하십시오.

스크립트 헤드에 필요한 매개 변수를 지정했습니다.

param ($G_ARCHIVE = $(throw "Need file to upload!"),
       $G_LOGFILE = $(throw "Need logfile!"))

Powershell ISE로 스크립트를 디버깅하려는 경우 : 이러한 매개 변수를 어떻게 채울 수 있습니까?


명령 창을 사용합니다. ISE 편집기에서 스크립트 파일을 열고 중단 점 (F9)을 설정합니다. 그런 다음 명령 창에 필수 매개 변수와 함께이 스크립트를 호출하는 명령을 입력합니다. ISE에서이 작업을 수행하는 다른 (내장) 방법이 있다고 생각하지 않습니다.


  1. Windows Powershell ISE에서 스크립트 (myscript.ps1)를 엽니 다.
  2. F9검사 (디버그)하려는 변수를 누릅니다 . 예를 들어 $ outputText 변수가 할당되는 아래 샘플의 두 번째 줄
  3. 쉘 창에서 매개 변수 값과 함께 스크립트의 상대 경로를 제공하십시오. 예 :. \ myscript.ps1 "my value"
  4. Enter 키를 누르십시오 (를 누를 필요가 없습니다 F5).
  5. 노란색으로 강조 표시된 디버깅 중단 점을 볼 수 있습니다. 현재 값을 검사하려면 원하는 변수에 커서를 놓습니다.

ISE 및 명령 매개 변수를 사용한 PowerShell 디버깅을 보여주는 샘플


다른 방법이 있습니다. $PSDefaultParameterValuesv3 이후에 존재 하는 자동 변수를 사용하여 cmdlet 및 고급 함수에 새 기본 인수를 제공 할 수 있습니다 (일반 함수에서는 작동하지 않음). 그러나 ISE에서 디버깅하는 경우에도 스크립트에서 작동합니다. 고급 기능에 대해 선언 [CmdletBinding()]하거나 [Parameter()]원하는대로해야합니다.

예를 들어,

[CmdletBinding()]
param ($G_ARCHIVE = $(throw "Need file to upload!"),
$G_LOGFILE = $(throw "Need logfile!"))

ISE 프롬프트에서 다음과 같이 실행합니다.

$PSDefaultParameterValues.add("ExampleScript.ps1:G_ARCHIVE","File-to-upload.txt")
$PSDefaultParameterValues.add("ExampleScript.ps1:G_LOGFILE","Example.log")

매개 변수 값을 런타임에 자동 실행되는 스크립트 블록으로 설정할 수도 있습니다.

$PSDefaultParameterValues["ExampleScript.ps1:G_LOGFILE"]={
  "Example-{0:yyMMddHHmm}.log" -f [datetime]::Now
}

변수는 해시 테이블이며 모든 표준 구문이 적용됩니다. 단, 에는 스크립트 이름 (또는 고급 함수 또는 cmdlet)과 콜론, 매개 변수 이름이 있어야합니다. 여러 스크립트 또는 명령에 대한 기본값과 각각에 대해 여러 매개 변수를 설정할 수 있습니다 (각 매개 변수는 새 테이블 항목 임).

이렇게하면 F5평상시처럼 스크립트를 실행할 수 있습니다. 매개 변수는 변수에서 가져 오므로 아무것도 입력 할 필요가 없습니다.

에 대한 다른 사용 사례 는 명령 $PSDefaultParameterValues에서 -Count매개 변수 를 지정하지 않는 한 Get-History가 마지막 10 개 항목 만 가져 오도록하는 것과 같은 사용자 지정일 수 있습니다 . 항목은 현재 세션에 대해서만 유지되므로 프로필 에 사용자 지정을 추가 할 수 있습니다 . Get-Help about_Parameters_Default_Values프롬프트 에 입력하여 자세한 내용을 읽 거나 TechNet 에서 동일한 정보를 볼 수 있습니다 .


ISE에서 필요한 매개 변수를 설정하는 훨씬 간단한 방법이 있습니다.

F5ISE를 누르기 전에 필요한 매개 변수를 설정하십시오. 일반적으로 필요한 매개 변수에 대해 설명합니다. 예 : # $ G_ARCHIVE = "C : \ Temp \ TestFile_001.txt"

"#"뒤에있는 모든 항목을 선택하고를 누릅니다 F8. 다음에를 사용하여 스크립트를 디버그하면 F5매개 변수가 테스트중인 값으로 설정되며 명령 줄을 통해 매개 변수를 전달할 필요가 없습니다.

참고 URL : https://stackoverflow.com/questions/4689880/how-to-pass-needed-parameters-to-script-in-powershell-ise

반응형