당신을 위한 PowerShell 임의 노트!

Learn some important built-in very helpful methods in Powershell. It could be a quick note for you so don’t forget to bookmark this article! 🥇



PowerShell에서 Catch 시도



기본 제공 예외 사용.

try {
   $wc = new-object System.Net.WebClient
   $wc.DownloadFile("http://www.contoso.com/MyDoc.doc","c:\temp\MyDoc.doc")
}
catch [System.Net.WebException],[System.IO.IOException] {
    "Unable to download MyDoc.doc from http://www.contoso.com."
}
catch {
    "An error occurred that could not be resolved."
}



익명 예외 세부 정보 인쇄.

try { NonsenseString }
catch {
  Write-Host "An error occurred:"
  Write-Host $_
  # will print the error details.
}


An Error occurred:
The term 'NonsenseString' is not recognized as the name of a cmdlet, function,
script file, or operable program. Check the spelling of the name, or if a path
was included, verify that the path is correct and try again.



Powershell에서 마지막으로 Catch 시도




try { NonsenseString }
catch {
  Write-Host "An error occurred:"
  Write-Host $_
  # will print the error details.
}
finally {
  Write-Host "I can move temporary log file to permanent location."
}



Powershell의 다른 경우




if(Boolean_expression) {
   // Executes when the Boolean expression is true
}else {
   // Executes when the Boolean expression is false
}




  • -eq 평등을 확인합니다.

  • -le 미만을 확인합니다.

  • 예: Powershell에서 Less than 비교

    $x = 30
    
    if($x -le 18){
       write-host "You can't get driving license!"
    } else {
       write-host "You are eligible for Driving License!"
    }
    
    


    예: 동등성 검사 비교

    $file1Timestamp = [datetime](get-date -date '1989-09-25 8AM')
    
    $file2Timestamp = [datetime](get-date -date '1989-09-25 10AM')
    
    if($file1Timestamp -eq $file2Timestamp) {
        write-host "File is not modified"
    } else {
        write-host "File is modified"
    }
    
    


    Powershell에서 사용자 지정 오류 발생




    Function Do-Something
    {
        throw "Your custom error"
        # This creates a runtime exception
        # that is a terminating error.
    }
    
    


    Powershell의 여러 줄 주석




    <#
    Function Do-Something
    {
    Write-Host "The entire function is commented"
    }
    #>
    
    


    Powershell에서 포함 vs 일치 vs 좋아요


    Contains는 수집에 사용되며 참조 값 모음에 단일 테스트 값이 포함되는지 여부를 알려줍니다.

    "abc" -contains "b" # return False
    
    




     "abc","xyz" -contains "abc"
    
    



    Match는 문자열에서 사용되며 정규식을 사용하여 문자열에서 검색합니다.

    "c:\temp\web\config.js" -match "b\\config.js" # True
    
    



    Like는 문자열에 사용되며 와일드카드 검색을 사용합니다.

    "c:\temp\web\config.js" -like "*b\config.js" # True
    
    




    배치 파일에서 오류가 발생할 때마다 환경 변수에 오류 코드를 저장합니다%ERRORLEVEL%.

    echo "Return Code:" %ERRORLEVEL%
    
    


    zip 파일 압축 해제



    Expand-Archive cmdlet 사용


    Expand-Archive는 내장형 powershell 5 모듈입니다.

     expand-archive -path c:\fsms\test.zip -destinationpath c:\fsms\unpack
    
    




    .Net 클래스 사용 [System.IO.Compression.ZipFile]


    ZipFile.ExtractToDirectory()는 .Net Framework 4.5 내장 API입니다.

    [System.IO.Compression.ZipFile]::ExtractToDirectory("c:\fsms\test.zip","c:\fsms\unpack")
    
    




    Shell.Application 클래스의 Folder.CopyHere() 메서드 사용


    COM object 클래스에서 생성된 Shell.Application 사용. namespace().items()를 사용하여 모든 항목을 가져온 다음 대상 폴더에 복사합니다. 복사하기 전에 대상 폴더가 있는지 확인하십시오. 또한 파일 보관을 취소하는 이 방법은 시간이 오래 걸리는 것 같습니다. 그러나 zip 파일 내 파일의 수정된 날짜 시간을 수정하지 않기 때문에 파일을 아카이브 해제하는 COM 방법이 신뢰할 수 있음을 발견했습니다.

    🏆 프로 팁

    예를 들어 Web.config 폴더 안에 web.zip\Content\website라는 파일이 있는 경우입니다. 그런 다음 실제 수정된 날짜 시간이 5/4/2021 07:00:11 AM이면 정확히 같은 시간이 표시됩니다. 그러나 powershell cmdletExpand-Archive 또는 .NetExtractToDirectory 방법을 사용하면 언젠가는 +1 시간이 표시되어 파일lastwritetime5/4/2021 08:00:11 AM로 표시됩니다. 여기서는 8AM가 아닌 7AM로 표시됩니다.

    예시:

    $shell = new-object -com Shell.Application
    $targetFolderToCopyUnzippedFiles = "c:\fsms\unpack"
    # create a target folder if not exist. Make sure you have the folder otherwise un-archive will fail.
    if(!(test-path $targetFolderToCopyUnzippedFiles)) {
      new-item -itemtype directory -path $targetFolderToCopyUnzippedFiles -force
    }
    $zipFile = "c:\fsms\test.zip"
    # Unarchive and copy to target folder
    $shell.namespace($targetFolderToCopyUnzippedFiles).copyhere($shell.namespace($zipFile).items(),4)
    
    




    참조


  • https://ridicurious.com/2019/07/29/3-ways-to-unzip-compressed-files-using-powershell/

  • 자주 사용하는 다른 Powershell 내장 방법을 알고 있다면 댓글 상자에 적어주세요. 이 블로그에 해당 방법 세부 정보를 추가할 수 있습니다:slightly_smiling_face 🙂


    제 글을 끝까지 읽어주셔서 감사합니다. 오늘 특별한 것을 배웠기를 바랍니다. 이 기사가 마음에 드셨다면 친구들과 공유해 주시고 저와 공유할 제안이나 생각이 있으시면 댓글 상자에 적어주세요.

    풀 스택 개발자 되기 💻



    나는 Fullstack Master에서 가르칩니다. 소프트웨어 개발자가 되고 새로운 소프트웨어 엔지니어 또는 수석 개발자/설계자로 캐리어를 성장시키려는 경우. 전체 스택 개발 교육 프로그램에 가입하는 것을 고려하십시오. 많은 코딩 실습을 통해 Angular, RxJS, JavaScript, 시스템 아키텍처 등을 배우게 됩니다. All-Access Monthly 멤버십 플랜이 있으며 모든 비디오 코스, 슬라이드, 소스 코드 다운로드 및 월간 화상 통화에 무제한으로 액세스할 수 있습니다.
  • 현재 및 미래의 Angular, node.js 및 관련 과정에 액세스하려면 All-Access Membership PRO plan을 구독하십시오.
  • PRO 플랜의 모든 것을 얻으려면 All-Access Membership ELITE plan에 가입하세요. 또한 Rupesh와의 월별 라이브 Q&A 화상 통화에 액세스할 수 있으며 의심/질문을 하고 더 많은 도움, 팁 및 요령을 얻을 수 있습니다.

  • 여러분의 밝은 미래가 여러분을 기다리고 있습니다. 오늘FullstackMaster을 방문하여 꿈의 소프트웨어 회사에 새로운 소프트웨어 개발자, 설계자 또는 수석 엔지니어 역할로 참여할 수 있도록 도와드리겠습니다.

    💖 나에게 👋라고 말해!
    루페시 티와리
    Fullstack Master의 설립자
    이메일: [email protected]
    웹사이트: RupeshTiwari.com

    좋은 웹페이지 즐겨찾기