당신을 위한 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
시간이 표시되어 파일lastwritetime
이 5/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)
참조
자주 사용하는 다른 Powershell 내장 방법을 알고 있다면 댓글 상자에 적어주세요. 이 블로그에 해당 방법 세부 정보를 추가할 수 있습니다:slightly_smiling_face 🙂
제 글을 끝까지 읽어주셔서 감사합니다. 오늘 특별한 것을 배웠기를 바랍니다. 이 기사가 마음에 드셨다면 친구들과 공유해 주시고 저와 공유할 제안이나 생각이 있으시면 댓글 상자에 적어주세요.
풀 스택 개발자 되기 💻
나는 Fullstack Master에서 가르칩니다. 소프트웨어 개발자가 되고 새로운 소프트웨어 엔지니어 또는 수석 개발자/설계자로 캐리어를 성장시키려는 경우. 전체 스택 개발 교육 프로그램에 가입하는 것을 고려하십시오. 많은 코딩 실습을 통해 Angular, RxJS, JavaScript, 시스템 아키텍처 등을 배우게 됩니다. All-Access Monthly 멤버십 플랜이 있으며 모든 비디오 코스, 슬라이드, 소스 코드 다운로드 및 월간 화상 통화에 무제한으로 액세스할 수 있습니다.
Rupesh
와의 월별 라이브 Q&A 화상 통화에 액세스할 수 있으며 의심/질문을 하고 더 많은 도움, 팁 및 요령을 얻을 수 있습니다. 여러분의 밝은 미래가 여러분을 기다리고 있습니다. 오늘FullstackMaster을 방문하여 꿈의 소프트웨어 회사에 새로운 소프트웨어 개발자, 설계자 또는 수석 엔지니어 역할로 참여할 수 있도록 도와드리겠습니다.
💖 나에게 👋라고 말해!
루페시 티와리
Fullstack Master의 설립자
이메일: [email protected]
웹사이트: RupeshTiwari.com
Reference
이 문제에 관하여(당신을 위한 PowerShell 임의 노트!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/rupeshtiwari/powershell-random-notes-for-you-2hdp텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)