Skip to content

Instantly share code, notes, and snippets.

@lisysolution
Last active January 30, 2023 14:23
Show Gist options
  • Save lisysolution/9adea80a60366da0bade to your computer and use it in GitHub Desktop.
Save lisysolution/9adea80a60366da0bade to your computer and use it in GitHub Desktop.
파워쉘 - 기본 코드
# =====================================
# 초기 스크립트 실행 허용으로 설정하는 방법
# =====================================
Set-ExecutionPolicy RemoteSigned -Force
# =====================================
# 파라미터 지정 방법
# =====================================
# 소스의 최상단에 있어야 함
param (
[Parameter(Mandatory=$true)] # 필수 항목 지정
$param1,
$param2
)
# =====================================
# 외부 어셈블리 Import
# =====================================
# .NET 어셈블리 Import
Add-Type -AssemblyName System.Web
# 외부 어셈블리(SQL) Import
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo") | Out-Null
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SmoExtended") | Out-Null
# =====================================
# 에러 처리
# =====================================
if($? -ne "True")
{
$Error[0] # 발생한 에러 내용
$Error.Clear() # 에러 초기화
exit # 실행 종료
}
# =====================================
# 결과 텍스트를 파일에 기록
# =====================================
# 파일의 끝에 Append Line 방식으로 추가 된다.
# 파일이 없는 경우 새로 만들어서 기록한다.
# 폴더가 없는 경우에는 새로 만들지 못하고 에러가 발생한다.
"텍스트 문자열" >> "C:\logs\log.txt"
# 명령의 결과를 기록하는 것도 가능
date >> "C:\logs\log.txt" # 현재 시각 기록
# =====================================
# 텍스트 파일의 내용 읽기
# =====================================
Get-Content "C:\log.txt" # 텍스트 파일의 내용 반환
Get-Content "C:\log.txt" | Measure-Object # 파일의 내용 분석 (총 라인 수 등.. )
Get-Content "C:\log.txt" -TotalCount 2 # 파일의 처음 2라인
Get-Content "C:\log.txt" | Select-Object -Last 3 # 파일의 마지막 3라인
# =====================================
# 특정 시간 동안 일시 정지
# =====================================
Start-Sleep -s 10 # 10초
Start-Sleep -m 10000 # 10000밀리초
# =====================================
# 화면에 문자열 출력
# =====================================
echo "문자열" # 콘솔에 문자 출력
# 글자색=Green, 배경색=Yellow, 배열의 각 항목을 '|' 으로 연결, 줄 마지막에 New Line 추가 안함
Write-Host $arrs -ForegroundColor Green -Separator '|' -BackgroundColor Yellow -NoNewline
# $pshome은 PS의 홈 디렉터리를 나타내는 미리 정의된 값
Write-Host $pshome # "C:\Windows\System32\WindowsPowerShell\v1.0"
# ' 으로 감싸는 경우 모든 내용을 문자로 처리
Write-Host '$pshome' # "$pshome"
# " 으로 감싸는 경우 문자열에 변수값 사용 가능
Write-Host "Home is $pshome" # "Home is C:\Windows\System32\WindowsPowerShell\v1.0"
# " 내부 문자열에서 특정 변수만 문자로 처리하고 싶은 경우
Write-Host "Home is `$pshome" # "Home is $pshome"
# =====================================
# if 사용법
# =====================================
("a" -ne "b") # Not Equal
# =====================================
# 문자열 처리
# =====================================
# 치환 - Replace
'abc' -replace 'a','b' # 'bbc'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment