PowerShell에서 Write-Debug 출력을 콘솔에 표시하려면 어떻게 해야 합니까?
저는 PowerShell을 배우고 있으며 Write-Host를 사용하여 새로운 PowerShell 스크립트 파일에서 변수 할당을 확인하고 있었습니다.그 때 저는 이것이 나쁜 생각이라는 기사를 읽었습니다.
그래서 나는 .ps1 파일에서 다음과 같은 문장을 바꿨습니다.
Write-Host "Start"
Write-Host "End"
... 이 경우:
Write-Debug "Start"
Write-Debug "End"
Windows PowerShell ISE에서 저장된 스크립트를 실행했을 때 콘솔에 출력이 기록되지 않았습니다.첨부했습니다-debug
다음과 같이 스크립트를 호출하는 문장에 대해 설명합니다.
PS E:\trialrun> .\MyScript.ps1 -debug
하지만 역시 출력이 콘솔에 기록되지 않습니다.Write-Debug를 잘못 사용하고 있는 것 같습니다.디버그 출력을 콘솔에 기록하려면 어떻게 해야 합니까?
tl;dr:
달려.
$DebugPreference = 'Continue'
산출량을 보기 시작하다Write-Debug
부름.작업이 완료되면 기본 설정 변수 복원
$DebugPreference
기본값으로 설정합니다.$DebugPreference = 'SilentlyContinue'
주어진 cmdlet 또는 고급 기능에 대해서만 디버그 출력을 켜려면
-Debug
공통 파라미터- 주의 사항: Windows PowerShell(PowerShell [Core] v6+에서는 더 이상 사용되지 않음)에서는 다음과 같은 대화형 디버깅 프롬프트가 표시됩니다.
Write-Debug
문이 있습니다.
- 주의 사항: Windows PowerShell(PowerShell [Core] v6+에서는 더 이상 사용되지 않음)에서는 다음과 같은 대화형 디버깅 프롬프트가 표시됩니다.
출력 여부Write-Debug
인쇄된 문장은 두 가지 메커니즘에 의해 제어됩니다.
Scope-wide: 선호도 변수의 값에 의해 결정됩니다. -
cmdlet 또는 고급 스크립트/함수를 호출할 때 명령 범위가 지정된 Ad-hoc.
$DebugPreference
value)에 공통 파라미터를 사용합니다. 참조.
$DebugPreference
기본값:SilentlyContinue
, 그래서 당신은 왜 당신이 어떤 결과물도 보지 못하는지 설명해 줍니다.Write-Debug
기본적으로 문장이 있습니다.
common parameter를 사용할 때, 당신은 효과적으로$DebugPreference
호출된 명령에 한해 다음을 수행합니다.
Windows PowerShell에서는 항상 이 값을 값으로 설정합니다. 이 값은 메시지를 인쇄할 뿐만 아니라 이러한 문이 있을 때마다 일시 중지되어 어떻게 진행할지 묻습니다.
PowerShell [Core] v6+에서는 이제 값이 (보다 감각적으로) 로 설정됩니다.
Windows PowerShell에서는 이러한 모든 상황에서의Write-Debug
신속한 호출 동작이 중단적일 수 있으므로 더 나은 접근 방식이 될 수 있습니다.명시된 바와 같이 PowerShell [Core] v6+에서는 이 문제가 더 이상 관심사가 아닙니다.
참고: 고급 기능 또는 스크립트 내부에서 다음을 구분하려는 경우$DebugPreference
호출자 대 공통 파라미터에 의해 선호 변수로 설정된 경우 -Debug
전달되었습니다(함수/스크립트-로 번역됨).$DebugPreference
변수), 사용$PSBoundParameters.ContainsKey('Debug')
;$true
는 것을 나타냅니다.-Debug
사용되었습니다.
참고 공문서 : https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/write-debug
기본적으로 디버그 메시지는 콘솔에 표시되지 않지만 디버그 매개 변수 또는 $DebugPreference 변수를 사용하여 표시할 수 있습니다.
당신은 필요할 것입니다.CmdletBinding
공통 매개 변수를 지원하려면 스크립트에 속성을 지정합니다(다음 포함).-Debug
):
[CmdletBinding()]
param()
Write-Debug Start
Write-Debug End
도움 파일을 한 번 보는 게 좋을 것 같습니다.
배치하면$DebugPreference = 'Continue'
각 모듈 기능의 프로세스 블록에서 의도한 대로 작동합니다.약간의 중복은 있지만, 다른 솔루션들이 제안한 것들보다 훨씬 쉽습니다.
언급URL : https://stackoverflow.com/questions/45289719/with-powershell-how-can-i-get-write-debug-output-to-appear-in-the-console
'sourcecode' 카테고리의 다른 글
WP 플러그인 Polylang 기사를 기본적으로 모든 언어로 "복사" (0) | 2023.10.31 |
---|---|
MySQL 오류 #1071 - 지정한 키가 너무 깁니다. 최대 키 길이는 767바이트입니다. (0) | 2023.10.31 |
변수의 대문자 첫번째 문자 (0) | 2023.10.31 |
심포니 CSRF and Ajax (0) | 2023.10.31 |
how to toggle attr() in jquery (0) | 2023.10.31 |