2014-11-18 2 views
1

일부 코드를 압축하는 데 약간의 쿼리가 있습니다. 하나 또는 두 개의 함수에서 그것을 사용하여 나는 쓰고있다. 우선 몇 가지 예를 들어보십시오.Condensing Powershell Nested If/ElseIf

이것은 If/ElseIf 메소드입니다.

If ($aVar -eq 1) { 
    If ($bVar -le $cVar) { 
     # code 
     # code 
     # code 
     # code 
    } 
} 
ElseIf ($aVar -eq 2) { 
    If ($bVar -gt $cVar) { 
     # code 
     # code 
     # code 
     # code 
    } 
} 

다음은 스위치 방법입니다.

Switch ($aVar) { 
    {$_ -eq 1} { 
     If ($bVar -le $cVar) { 
      #code 
      #code 
      #code 
      #code 
     } 
    } 
    {$_ -eq 2} { 
     If ($bVar -gt $cVar) { 
      #code 
      #code 
      #code 
      #code 
     } 
    } 

이 모든 것을 응축하는 것이 가능합니까?

#code 섹션은 ​​완전히 동일하므로 사용 된 두 가지 방법 중 두 번 사용하는 대신 한 번만 쓰는 방법이 있는지 궁금합니다.

감사합니다.

+0

함수를 작성하고 원하는 곳에서 호출하십시오. –

+0

조건을 요약하거나'# 코드 '부분을 다시 사용 하시겠습니까? 두 번째 조건은 재사용 코드의 일부로 간주됩니까? – briantist

+0

Bill, "마스터"기능에서 다른 기능을 중첩하는 것이 좋습니다. if 조건부를 콘덴싱하는 것이 이상적 일 수는 있지만 어떻게 관리 할 지 확신 할 수 없습니다. #code 섹션 만 정적 인 코드입니다. 한 번만 쓸 수 있다면 좋을 것입니다. 어쩌면 기능은 내가 어떻게 진행하는지에 관한 것입니다. – jagovski

답변

2

-OR 및 -AND 인수를 사용하는 방법은 어떻습니까?

If(($aVar -eq 1 -and $bVar -le $cVar) -or ($aVar -eq 2 -and $bVar -gt $cVar)){ 
    #code 
    #code 
    #code 
    #code 
} 
+0

이것은 잘 작동하는 것 같습니다. 고맙습니다 :) – jagovski