Powershell에서 -Verbose 인수가 주어졌는지 확인할 수 있습니까?
나는 나만의 Powershell 로깅 기능을 작성했습니다.Log
매개 변수 포함stream
(메시지를 작성할 스트림) 및message
(작성할 메시지).
콘솔과 로그 파일 모두에 출력을 기록할 수 있습니다.함수에서 수행하는 작업은 기본적으로 메시지를 게시할 스트림(스위치 문 포함)을 결정한 다음 스트림과 로그 파일에 메시지를 기록하는 것입니다.
switch ($stream) {
Verbose {
Write-Output "$logDate [VERBOSE] $message" | Out-File -FilePath $sgLogFileName -Append
Write-Verbose $message
break
}
}
문제는 이제 -Verbose 인수가 주어졌는지 확인할 수 있느냐는 것입니다.
-Verbose가 제공된 경우에만 메시지를 로그 파일에 쓰는 것이 목표입니다.
다음 도움말 문서를 이미 살펴보았지만 도움이 되는 내용을 찾지 못했습니다.
도움말 정보_매개 변수
도움말 정보_공통 매개 변수
또한 -WhatIf 매개 변수는 Write-Verbose에서 작동하지 않습니다.
답변 감사합니다!
스크립트 내에서 다음을 확인합니다.
$PSCmdlet.MyInvocation.BoundParameters["Verbose"].IsPresent
사용 가능:매개 변수 '$VerbosePreference'를 확인합니다.'SilentContinue'로 설정된 경우 명령줄에 $Verbose가 지정되지 않았습니다.'$Continue'로 설정된 경우 설정된 것으로 가정할 수 있습니다.
다음과 같은 다른 일반적인 매개 변수에도 적용됩니다.
Name Value
---- -----
DebugPreference SilentlyContinue
VerbosePreference SilentlyContinue
ProgressPreference Continue
ErrorActionPreference Continue
WhatIfPreference 0
WarningPreference Continue
ConfirmPreference High
MSDN 블로그 페이지에서 오래전에 가져온...그래서 상대적으로 오래된 버전의 파워셸과 관련이 있을 것입니다.Powershell v4의 "Get-Help about_CommonParameters"도 참조하십시오.
더 일반적으로: -Verbose를 지정할 수 있으므로:$false 명령행에서 다음 코드가 해당 사례를 처리합니다.다른 스위치 파라미터에도 적용됩니다.
$Verbose = $false
if ($PSBoundParameters.ContainsKey('Verbose')) { # Command line specifies -Verbose[:$false]
$Verbose = $PsBoundParameters.Get_Item('Verbose')
}
같은 답을 찾다가 우연히 발견했고, 좋은 정보를 찾았지만, 좋지 않은 정보도 있었습니다.표시된 답변은 날짜가 지정된 것으로 보이며 코멘트대로 정확하지 않습니다.MyInvocation 개체의 PSBoundParameter 속성 개체가 IsPresent 속성이 포함되지 않은 Dictionary(PoSH 5.1 up이 이전에 확인하지 않았을 수 있음)입니다.또한 질문자는 다른 답변에서 이 옵션을 제시한 $VerbosePreference를 고려하는 것을 잊었습니다.
다음은 간편하고 간편한 솔루션입니다.
if ( $PSBoundParameters['Verbose'] -or $VerbosePreference -eq 'Continue' ) {
# do something
}
$PSBoundParameters는 해시 테이블 개체입니다. 값이 존재하고 true이면 true로 평가되고, 존재하지 않거나 true가 아닌 경우 false로 평가됩니다.세션 수준에서 설정된 VerbosePreference는 값이 Continue일 때 상세 내역을 표시합니다.논리 또는 를 사용하는 조건에서 이것을 조합하면 자세한 출력이 필요할 경우 정확한 표현을 얻을 수 있습니다.
의 -Verbose
변수, 모수, 사고려 을 고려합니다.Write-Verbose
에 Write-Host
: https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/write-verbose?view=powershell-7.1
언급URL : https://stackoverflow.com/questions/24446680/is-it-possible-to-check-if-verbose-argument-was-given-in-powershell
'programing' 카테고리의 다른 글
Powershell의 텍스트 파일에 내용 삽입 (0) | 2023.08.25 |
---|---|
스프링 스케줄링 작업 - 한 번만 실행 (0) | 2023.08.25 |
표면도:매트플롯립 (0) | 2023.08.25 |
프로그래밍 방식으로 "Windows 바탕 화면을 이 모니터로 확장" (0) | 2023.08.25 |
중앙값에 부스트 로그 라이브러리 누락OS 7 기본 레포 (0) | 2023.08.25 |