Programming/Other

PowerShell 기본문법

bcheul 2011. 1. 17. 18:08
펌. ( http://hellzblog.egloos.com/2011934 )

기본명령형식 : cmdlet(command-let)
정규식 표현, 파이프 연결가능

명령어의 도움말 : Get-Help 명령어 // o : -full = 도움말 전체


스크립트실행 보안해제 
PS > Set-ExecutionPolicy RemoteSigned
PS > Set-ExecutionPolicy Unrestricted // 공유폴더에 위치한 서명안된 스크립트 실행

변수지정
PS > $변수명 = 내용
PS > [변수타입]$변수명 = 내용 // 변수타입 지정 : xml, int, char, string ...
변수명은 영문 및 한글, 숫자로만 된 이름도 가능

배열사용
@으로 배열을 표현. 변수에 저장해야 함. 참조는[참조]형식
PS > $ar = @(1,1,1,1,)
PS >echo $ar[0]

PS > $ar = @((1,1,1,1,),(2,2,2,2,))
PS > echo $ar[0][0]

산술,증감,할당 연산은 기존 언어와 거의 똑같음.

주석은 #

비교연산자
-eq =
-ne !=
-gt >
-ge >=
-lt <
-le <=

논리연산자
!
-not !
-and &
-or |

조건문(if, elseif, else)
반복문(for, foreach, while, do while, do until, continue, break)
분기문(switch)
기존의 언어와 거의 똑같음. 비교연산자만 주의
foreach($value1 in $array) // array내용 순서대로 value에 대입하면서 반복

함수만들기 
functin 함수명
{
함수내용
}

함수호출은 함수명. 매개변수는 공백으로 구분

매개변수(스크립트, 함수)
$args변수안에 배열로 저장됨

반환값(스크립트, 함수)
return 반환값

명령행 실행시 주의사항(스크랩트 예외)
조건문, 반복문, 분기문, 함수등을 사용할땐 해당 구문을 한줄로 작성해야 한다.({}포함)
명령이 여러개일경우, ;으로 구분한다.

스크립트를 변수에 저장한뒤 실행할수 있음
PS > $변수 = {스크립트}
PS > &$변수



디렉토리 명령어 : ls, dir

레지스트리 접근(레지스트리 내용은 디렉터리와 동일하게 접근)
HKEY_LOCAL_MACHINE : cd HKLM:
HKEY_CURRENT_USER : cd HKCU:

레스스트리 읽기, 쓰기
PS > Get-ItemProperty 키이름
PS > Set_ItemProperty 위치 -name 키이름 -value 키값



프로세스 출력
PS > Get-Process 

출력결과 그룹화 : 명령 Group-Object 오브젝트

출력결과 속성선택 : 명령 Format-List 속성, 속성 // o : * = 모든속성 출력

출력결과 정렬 : 명령 Sort-Object 정렬오브젝트 // o : -descending = 큰 순서 정렬)



파일 읽기
PS > Get-Content 파일명

파일 쓰기 
PS > Set-Content 파일명 쓸내용

xml파일을 읽어 xml변수에 넣으면 엘리먼트를 구조체처럼 조작할수 있음
PS > [xml]$변수명 = Get-Content 파일명
PS > echo $변수명.엘리먼트

COM메소드 호출예(explorer)
PS > $ie = New-Object -ComObject "InternetExplorer.Application"
PS > $ie = | Get-Member -MemberType Method
PS > $ie.Navigate("웹페이지주소")
PS > $ie.Visible = &true

WMI사용
PS > Get-WmiObject 요소