Powershell ISE의 스크립트에 필요한 매개 변수를 전달하는 방법은 무엇입니까?
제목을 참조하십시오.
스크립트 헤드에 필요한 매개 변수를 지정했습니다.
param ($G_ARCHIVE = $(throw "Need file to upload!"),
$G_LOGFILE = $(throw "Need logfile!"))
Powershell ISE로 스크립트를 디버깅하려는 경우 : 이러한 매개 변수를 어떻게 채울 수 있습니까?
명령 창을 사용합니다. ISE 편집기에서 스크립트 파일을 열고 중단 점 (F9)을 설정합니다. 그런 다음 명령 창에 필수 매개 변수와 함께이 스크립트를 호출하는 명령을 입력합니다. ISE에서이 작업을 수행하는 다른 (내장) 방법이 있다고 생각하지 않습니다.
- Windows Powershell ISE에서 스크립트 (myscript.ps1)를 엽니 다.
- F9검사 (디버그)하려는 변수를 누릅니다 . 예를 들어 $ outputText 변수가 할당되는 아래 샘플의 두 번째 줄
- 쉘 창에서 매개 변수 값과 함께 스크립트의 상대 경로를 제공하십시오. 예 :. \ myscript.ps1 "my value"
- Enter 키를 누르십시오 (를 누를 필요가 없습니다 F5).
- 노란색으로 강조 표시된 디버깅 중단 점을 볼 수 있습니다. 현재 값을 검사하려면 원하는 변수에 커서를 놓습니다.

다른 방법이 있습니다. $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매개 변수가 테스트중인 값으로 설정되며 명령 줄을 통해 매개 변수를 전달할 필요가 없습니다.
'program story' 카테고리의 다른 글
| iOS에 맞춤형 진동을위한 API가 있습니까? (0) | 2020.11.05 |
|---|---|
| * args 구문을 사용하는 인수 목록에서 후행 쉼표가 SyntaxError 인 이유는 무엇입니까? (0) | 2020.11.05 |
| Android 용 Firebug 또는 JavaScript 콘솔 디버그가 있습니까? (0) | 2020.11.05 |
| UI 요소의 위치 / 크기를 화면 크기의 백분율로 설정 (0) | 2020.11.05 |
| AngularJS의 지시문에서 부모 컨트롤러의 호출 메서드 (0) | 2020.11.05 |