programing

$가 무엇입니까?파워셸에서?

subpage 2023. 8. 2. 09:04
반응형

$가 무엇입니까?파워셸에서?

의 의미는 무엇입니까?$?파워셸에서?


편집: TechNet은 '성공' 또는 '실패'가 무엇을 의미하는지 설명하지 않고 직설적으로 답변합니다.

$?
마지막 작업의 실행 상태를 포함합니다.마지막 작업이 성공하면 TRUE, 실패하면 FALSE를 포함합니다.

$?가 $LastExitCode가 0인지 단순히 테스트할 것으로 예상했지만 $?가 False이지만 $LastExitCode가 True인 카운터 예를 발견했습니다.

돌아옵니다true마지막 명령이 성공한 경우, 그렇지 않은 경우false.

그러나 여러 가지 주의 사항과 명백하지 않은 행동(예: "성공"이 정확히 무엇을 의미하는지)이 있습니다.저는 이 기사를 읽는 것이 더 나은 치료를 위해 강력하게 추천합니다.

예를 들어 Get-ChildItem을 호출합니다.

PS> Get-ChildItem 

PS> $? 
    True

돌아올 것입니다TrueGet-ChildItem 호출이 성공함에 따라.

그러나 존재하지 않는 디렉터리에서 Get-ChildItem을 호출하면 오류가 반환됩니다.

PS> Get-ChildItem \Some\Directory\Which\Does\Not\Exist
    Get-ChildItem : Cannot find path 'C:\Some\Directory\Which\Does\Not\Exist' because it does not exist.

PS> $?
    False

돌아올 것입니다False이전 명령이 성공하지 못했기 때문입니다.

$?포함할 것$false마지막 명령으로 오류가 발생한 경우다음을 포함합니다.$true만약 그렇지 않다면요.PowerShell v1 시절에는 오류를 처리하는 일반적인 방법이었습니다.예를 들어 스크립트에서 파일이 있는지 확인하고 파일이 없으면 사용자 지정 메시지를 인쇄하려면 다음 작업을 수행할 수 있습니다.

Get-Item -Path john -ErrorAction silentlycontinue;
if( -not $?)
{
    'could not find file.';
     exit
 }`

또한 다음을 사용하여 마지막 명령 종료 코드에 액세스할 수 있습니다.$LastExitCode매개 변수

# run some command
# ...
if ((! $?) -and $ErrorAction -eq "Stop") { exit $LastExitCode }

Windows Server 2019에서 표준 오류가 발생하면 $?가 false로 설정될 수 있습니다.이 예에서 도커 합성은 표준 오류를 통해 경고를 기록하므로 0으로 종료하더라도 $?는 실패를 나타냅니다.

중요!!!Jules Clements의 답변에 유의하십시오. $?는 $LastExitCode가 0을 반환하더라도 false를 반환할 수 있습니다.

심지어 $?를 요청해도 내용이 변경됩니다.

예: 일부 명령으로 인해 $?가 false입니다. write $? => write $? => write write $? >> write write write write write "false"가 두 번째로 "true"가 반환됩니다.

언급URL : https://stackoverflow.com/questions/10634115/what-is-in-powershell

반응형