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)를 엽니다.
- 검사할 변수를 누릅니다(디버깅).예를 들어 아래 샘플의 두 번째 행에서 $output은텍스트 변수를 할당하고 있습니다.
- 셸 창에서 스크립트의 상대 경로와 param 값을 지정합니다.예: .\myscript.ps1 "my value"
- Enter 키를 누릅니다(키를 누를 필요가 없습니다).
- 노란색으로 강조 표시된 디버깅 중단점을 볼 수 있습니다.현재 값을 검사하려면 원하는 변수에 커서를 놓습니다.

다른 방법이 있어요.를 사용할 수 있습니다.$PSDefaultParameterValues자동 변수 - 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) 뒤에 콜론을 붙이고 파라미터 이름을 붙여야 합니다.여러 스크립트 또는 명령에 대해 기본값을 설정하고 각 스크립트에 대해 여러 파라미터를 설정할 수 있습니다(각 파라미터는 새로운 테이블엔트리입니다).
이렇게 하면 스크립트를 정상적으로 실행할 수 있습니다.파라미터는 변수에서 취득되므로 아무것도 입력할 필요가 없습니다.
기타 사용 사례$PSDefaultParameterValues커스터마이즈일 수 있습니다.예를 들어 Get-History가 마지막 10개의 엔트리만 가져오도록 하는 등-Count파라미터를 지정합니다.엔트리는 현재 세션에서만 유지되므로 프로파일에 커스터마이즈를 추가해야 합니다.입력해서 더 읽을 수 있습니다.Get-Help about_Parameters_Default_Values또는 TechNet에서 동일한 정보를 표시합니다.
ISE에서 필요한 파라미터를 설정하는 방법은 다음과 같습니다.
ISE를 누르기 전에 필요한 파라미터를 설정합니다.보통 필요한 파라미터에 코멘트를 붙입니다(예: # $G_ARC).HIVE = "C:\Temp\TestFile_001.txt"
"#" 뒤에 모든 것을 선택하고 를 누릅니다.다음으로 스크립트를 디버깅할 때 파라미터는 테스트하는 값으로 설정되어 있기 때문에 명령줄을 통해 파라미터를 전달할 필요가 없습니다.
★★★★★★★★ ★★Powershell 5.1 ISE을 F5파라미터화된 스크립트를 실행하려면 파라미터 값을 하나씩 입력하도록 요구됩니다.
「 」를 하는 $PSDefaultParameterValues합니다.$psISE 라이크
$PSDefaultParameterValues.add("$($psISE.CurrentFile.DisplayName):G_ARCHIVE","test")
나는 오늘 이 문제가 있었다.빈둥빈둥 놀다가 하부 패널이 Debug E.g.로 동작하고 있는 것을 알게 되었습니다.프롬프트 '[Dbg]: PS'
디버깅을 중지하고 패러메터로 스크립트를 재발행했습니다. - ForceBuild : : ./myScript.ps1 - ForceBuild $true
그 결과 스크립트가 시작되고 중단점이 실행되어 예상대로 디버깅할 수 있게 되었습니다.
언급URL : https://stackoverflow.com/questions/4689880/how-to-pass-needed-parameters-to-script-in-powershell-ise
'codememo' 카테고리의 다른 글
| 클러스터된 인덱스와 비클러스터된 인덱스의 차이점은 무엇입니까? (0) | 2023.04.08 |
|---|---|
| 스크롤 막대를 숨길 수 있지만 스크롤할 수 있음 (0) | 2023.04.08 |
| CSS를 사용하여 체크박스를 스타일링하는 방법 (0) | 2023.04.08 |
| PowerShell에서 "백업" 컨텍스트를 사용하여 섀도 복사본 생성 (0) | 2023.04.08 |
| PowerShell WMI 개체의 모든 속성을 나열하는 방법 (0) | 2023.04.08 |