Powershell-빠른 가이드
Windows PowerShell은 command-line shell 과 scripting language시스템 관리를 위해 특별히 설계되었습니다. Linux의 아날로그를 Bash Scripting이라고합니다. .NET Framework에 구축 된 Windows PowerShell은 IT 전문가가 Windows Server 환경에서 실행되는 Windows 운영 체제 및 응용 프로그램의 관리를 제어하고 자동화하는 데 도움이됩니다.
호출되는 Windows PowerShell 명령 cmdlets, 명령 줄에서 컴퓨터를 관리 할 수 있습니다. Windows PowerShell 공급자를 사용하면 파일 시스템에 액세스하는 것처럼 쉽게 레지스트리 및 인증서 저장소와 같은 데이터 저장소에 액세스 할 수 있습니다.
또한 Windows PowerShell에는 풍부한 식 파서와 완전히 개발 된 스크립팅 언어가 있습니다. 따라서 간단한 말로 GUI 등으로 수행하는 모든 작업을 완료 할 수 있습니다.
PowerShell ISE
Windows PowerShell Integrated Scripting Environment(ISE)는 Windows PowerShell 용 호스트 응용 프로그램입니다. Windows PowerShell ISE에서는 여러 줄 편집, 탭 완성, 구문 색상 지정, 선택적 실행, 상황에 맞는 도움말 및 권한 지원을 통해 단일 Windows 기반 그래픽 사용자 인터페이스에서 명령을 실행하고 스크립트를 작성, 테스트 및 디버그 할 수 있습니다. -왼쪽 언어.
메뉴 항목과 바로 가기 키를 사용하여 Windows PowerShell 콘솔에서 수행하는 것과 동일한 많은 작업을 수행 할 수 있습니다. 예를 들어 Windows PowerShell ISE에서 스크립트를 디버깅 할 때 스크립트에 줄 중단 점을 설정하려면 코드 줄을 마우스 오른쪽 단추로 클릭 한 다음Toggle Breakpoint.
PowerShell 기본 명령
많은 PowerShell 명령이 있으며이 자습서에서는 이러한 모든 명령을 입력하기가 매우 어렵습니다. PowerShell의 가장 중요한 명령과 기본 명령에 중점을 둘 것입니다.
첫 번째 단계는 명령과 매개 변수를 제공하는 방법에 대한 설명을 제공하는 Get-Help 명령으로 이동하는 것입니다.
PowerShell 아이콘은 작업 표시 줄과 시작 메뉴에서 찾을 수 있습니다. 아이콘을 클릭하면 열립니다.
열려면 아이콘을 클릭하기 만하면 다음 화면이 열리고 PowerShell이 작업 할 준비가되었음을 의미합니다.
PowerShell 버전
최신 버전의 PowerShell은 5.0이며 서버에 설치된 항목을 확인하려면 다음 명령을 입력합니다. :$PSVersionTable 다음 스크린 샷과 화면에서 볼 수 있듯이 PSVersion 4.0도 있습니다.
더 많은 Cmdlet이있는 최신 버전으로 업데이트하려면 다운로드해야합니다. Windows Management Framework 5.0 다음 링크에서- https://www.microsoft.com/en-us/download/details.aspx?id=50395 설치하십시오.
PowerShell ISE
Windows PowerShell Integrated Scripting Environment(ISE)는 Windows PowerShell 용 호스트 응용 프로그램입니다. Windows PowerShell ISE에서는 여러 줄 편집, 탭 완성, 구문 색상 지정, 선택적 실행, 상황에 맞는 도움말 및 권한 지원을 통해 단일 Windows 기반 그래픽 사용자 인터페이스에서 명령을 실행하고 스크립트를 작성, 테스트 및 디버그 할 수 있습니다. -왼쪽 언어.
메뉴 항목과 바로 가기 키를 사용하여 Windows PowerShell 콘솔에서 수행하는 것과 동일한 많은 작업을 수행 할 수 있습니다. 예를 들어 Windows PowerShell ISE에서 스크립트를 디버깅 할 때 스크립트에 줄 중단 점을 설정하려면 코드 줄을 마우스 오른쪽 단추로 클릭 한 다음Toggle Breakpoint.
열려면 시작-검색으로 이동 한 다음 다음 스크린 샷과 같이 입력-PowerShell로 이동합니다.
그런 다음 Windows PowerShell ISE를 클릭합니다. 또는 다음 스크린 샷과 같이 아래쪽 화살표를 클릭합니다.
서버에 설치된 모든 애플리케이션이 나열되고 Windows PowerShell ISE를 클릭합니다.
다음 테이블이 열립니다-
여기에는 다음과 같은 세 개의 섹션이 있습니다. PowerShell Console 1 번으로 Scripting File 숫자 2와 세 번째는 Command Module 모듈을 찾을 수 있습니다.
스크립트를 생성하는 동안 직접 실행하여 다음 예제와 같은 결과를 볼 수 있습니다.
PowerShell 기본 명령
많은 PowerShell 명령이 있으며이 자습서에서는 이러한 모든 명령을 입력하기가 매우 어렵습니다. PowerShell의 가장 중요한 명령과 기본 명령에 중점을 둘 것입니다.
첫 번째 단계는 명령과 매개 변수를 제공하는 방법에 대한 설명을 제공하는 Get-Help 명령으로 이동하는 것입니다.
To get the list of Updates −
- Get-HotFix 및 다음과 같이 핫픽스 설치
- Get-HotFix -id KB2741530
cmdlet 또는 "Command let"은 Windows PowerShell 환경에서 사용되는 간단한 명령입니다. Windows PowerShell 런타임은 명령 프롬프트에서 이러한 cmdlet을 호출합니다. Windows PowerShell API를 통해 프로그래밍 방식으로 만들고 호출 할 수 있습니다.
Cmdlet 대 명령
Cmdlet은 다음과 같은 방식으로 다른 명령 셸 환경의 명령과 다릅니다.
Cmdlet은 .NET Framework 클래스 개체입니다. 독립 실행 형 실행 파일이 아닙니다.
Cmdlet은 수십 줄의 코드로 쉽게 구성 할 수 있습니다.
구문 분석, 오류 표시 및 출력 형식은 cmdlet에서 처리되지 않습니다. Windows PowerShell 런타임에 의해 수행됩니다.
Cmdlet 프로세스는 텍스트 스트림이 아닌 개체에서 작동하며 개체는 파이프 라이닝을위한 출력으로 전달할 수 있습니다.
Cmdlet은 한 번에 단일 개체를 처리하므로 레코드 기반입니다.
도움을 받다
첫 번째 단계는 명령과 매개 변수를 제공하는 방법에 대한 설명을 제공하는 Get-Help 명령으로 이동하는 것입니다.
다음은 파일 및 폴더에있는 powershell 스크립트의 예입니다.
Sr. 아니. | 작동 및 설명 |
---|---|
1 |
폴더 생성
PowerShell 스크립트를 사용하여 폴더를 만드는 방법을 보여주는 예제 스크립트입니다. |
2 |
파일 생성
PowerShell 스크립트를 사용하여 파일을 만드는 방법을 보여주는 예제 스크립트입니다. |
삼 |
폴더 복사
PowerShell 스크립트를 사용하여 파일을 복사하는 방법을 보여주는 예제 스크립트. |
4 |
파일 복사
PowerShell 스크립트를 사용하여 파일을 만드는 방법을 보여주는 예제 스크립트입니다. |
5 |
폴더 삭제
PowerShell 스크립트를 사용하여 폴더를 삭제하는 방법을 보여주는 예제 스크립트. |
6 |
파일 삭제
PowerShell 스크립트를 사용하여 파일을 삭제하는 방법을 보여주는 예제 스크립트. |
7 |
폴더 이동
PowerShell 스크립트를 사용하여 폴더를 이동하는 방법을 보여주는 예제 스크립트. |
8 |
파일 이동
PowerShell 스크립트를 사용하여 파일을 이동하는 방법을 보여주는 예제 스크립트. |
9 |
폴더 이름 바꾸기
PowerShell 스크립트를 사용하여 폴더의 이름을 바꾸는 방법을 보여주는 예제 스크립트. |
10 |
파일 이름 바꾸기
PowerShell 스크립트를 사용하여 파일 이름을 바꾸는 방법을 보여주는 예제 스크립트. |
11 |
항목 검색
PowerShell 스크립트를 사용하여 항목을 검색하는 방법을 보여주는 예제 스크립트. |
12 |
폴더 존재 여부 확인
PowerShell 스크립트를 사용하여 폴더 존재를 확인하는 방법을 보여주는 예제 스크립트입니다. |
13 |
파일 존재 여부 확인
PowerShell 스크립트를 사용하여 파일 존재를 확인하는 방법을 보여주는 예제 스크립트입니다. |
다음은 시스템 날짜 및 시간에 대한 powershell 스크립트의 예입니다.
Sr. 아니. | 작동 및 설명 |
---|---|
1 |
시스템 날짜 가져 오기
PowerShell 스크립트를 사용하여 시스템 날짜를 가져 오는 방법을 보여주는 예제 스크립트. |
2 |
시스템 날짜 설정
PowerShell 스크립트를 사용하여 시스템 날짜를 설정하는 방법을 보여주는 예제 스크립트. |
삼 |
시스템 시간 가져 오기
PowerShell 스크립트를 사용하여 시스템 시간을 가져 오는 방법을 보여주는 예제 스크립트입니다. |
4 |
시스템 시간 설정
PowerShell 스크립트를 사용하여 시스템 시간을 설정하는 방법을 보여주는 예제 스크립트. |
다음은 다양한 유형의 파일을 만들고 읽는 powershell 스크립트의 예입니다.
Sr. 아니. | 작동 및 설명 |
---|---|
1 |
텍스트 파일 생성
PowerShell 스크립트를 사용하여 텍스트 파일을 만드는 방법을 보여주는 예제 스크립트입니다. |
2 |
텍스트 파일 읽기
PowerShell 스크립트를 사용하여 텍스트 파일을 읽는 방법을 보여주는 예제 스크립트입니다. |
삼 |
XML 파일 생성
PowerShell 스크립트를 사용하여 XML 파일을 만드는 방법을 보여주는 예제 스크립트입니다. |
4 |
XML 파일 읽기
PowerShell 스크립트를 사용하여 XML 파일을 읽는 방법을 보여주는 예제 스크립트입니다. |
5 |
CSV 파일 생성
PowerShell 스크립트를 사용하여 CSV 파일을 만드는 방법을 보여주는 예제 스크립트입니다. |
6 |
CSV 파일 읽기
PowerShell 스크립트를 사용하여 CSV 파일을 읽는 방법을 보여주는 예제 스크립트입니다. |
7 |
HTML 파일 생성
PowerShell 스크립트를 사용하여 HTML 파일을 만드는 방법을 보여주는 예제 스크립트입니다. |
8 |
HTML 파일 읽기
PowerShell 스크립트를 사용하여 HTML 파일을 읽는 방법을 보여주는 예제 스크립트입니다. |
9 |
파일 내용 지우기
PowerShell 스크립트를 사용하여 파일 내용을 지우는 방법을 보여주는 예제 스크립트. |
10 |
텍스트 데이터 추가
PowerShell 스크립트를 사용하여 파일 내용에 텍스트를 추가하는 방법을 보여주는 예제 스크립트. |
Cmdlet
cmdlet 또는 "Command let"은 Windows PowerShell 환경에서 사용되는 간단한 명령입니다. Windows PowerShell 런타임은 명령 프롬프트에서 이러한 cmdlet을 호출합니다. Windows PowerShell API를 통해 프로그래밍 방식으로 만들고 호출 할 수 있습니다. 다음은 cmdlet의 고급 사용 예입니다.
Sr. 아니. | Cmdlet 유형 및 설명 |
---|---|
1 |
고유 한 Cmdlet 가져 오기
Get-Unique Cmdlet을 보여주는 예제 프로그램. |
2 |
Group-Object Cmdlet Group-Object Cmdlet을 보여주는 예제 프로그램입니다. |
삼 |
측정 개체 Cmdlet
Measure-Object Cmdlet을 보여주는 예제 프로그램입니다. |
4 |
비교 개체 Cmdlet
Compare-Object Cmdlet을 보여주는 예제 프로그램입니다. |
5 |
형식 목록 Cmdlet
Format-List Cmdlet을 보여주는 예제 프로그램. |
6 |
형식 전체 Cmdlet
Format-Wide Cmdlet을 보여주는 예제 프로그램. |
7 |
Where-Object Cmdlet
Where-Object Cmdlet을 보여주는 예제 프로그램입니다. |
8 |
Get-ChildItem Cmdlet
Get-ChildItem Cmdlet을 보여주는 예제 프로그램입니다. |
9 |
ForEach-Object Cmdlet
ForEach-Object Cmdlet을 보여주는 예제 프로그램입니다. |
10 |
Start-Sleep Cmdlet
Start-Sleep Cmdlet을 보여주는 예제 프로그램. |
11 |
읽기 호스트 Cmdlet
Read-Host Cmdlet을 보여주는 예제 프로그램입니다. |
12 |
개체 선택 Cmdlet
Select-Object Cmdlet을 보여주는 예제 프로그램. |
13 |
Sort-Object Cmdlet
Sort-Object Cmdlet을 보여주는 예제 프로그램입니다. |
14 |
쓰기 경고 Cmdlet
Write-Warning Cmdlet을 보여주는 예제 프로그램입니다. |
15 |
쓰기 호스트 Cmdlet
Write-Host Cmdlet을 보여주는 예제 프로그램입니다. |
16 |
항목 Cmdlet 호출
Invoke-Item Cmdlet을 보여주는 예제 프로그램입니다. |
17 |
호출 식 Cmdlet
Invoke-Expression Cmdlet을 보여주는 예제 프로그램입니다. |
18 |
측정 명령 Cmdlet
Measure-Command Cmdlet을 보여주는 예제 프로그램입니다. |
19 |
호출 기록 Cmdlet
Invoke-History Cmdlet을 보여주는 예제 프로그램입니다. |
20 |
추가 기록 Cmdlet
Add-History Cmdlet을 보여주는 예제 프로그램. |
21 |
Get-History Cmdlet
Get-History Cmdlet을 보여주는 예제 프로그램입니다. |
22 |
Get-Culture Cmdlet
Get-Culture Cmdlet을 보여주는 예제 프로그램입니다. |
Windows PowerShell은 command-line shell 과 scripting language시스템 관리를 위해 특별히 설계되었습니다. Linux에서의 아날로그를 Bash Scripting이라고합니다. .NET Framework에 구축 된 Windows PowerShell은 IT 전문가가 Windows Server 환경에서 실행되는 Windows 운영 체제 및 응용 프로그램의 관리를 제어하고 자동화하는 데 도움이됩니다.
호출되는 Windows PowerShell 명령 cmdlets, 명령 줄에서 컴퓨터를 관리 할 수 있습니다. Windows PowerShell 공급자를 사용하면 파일 시스템에 액세스하는 것처럼 쉽게 레지스트리 및 인증서 저장소와 같은 데이터 저장소에 액세스 할 수 있습니다.
또한 Windows PowerShell에는 풍부한 식 파서와 완전히 개발 된 스크립팅 언어가 있습니다. 따라서 간단한 말로 GUI 등으로 수행하는 모든 작업을 완료 할 수 있습니다. Windows PowerShell 스크립팅은 완전히 개발 된 스크립팅 언어이며 풍부한 식 파서 /
풍모
Cmdlets − Cmdlet은 레지스트리, 서비스, 프로세스, 이벤트 로그 관리 및 WMI (Windows Management Instrumentation) 사용과 같은 일반적인 시스템 관리 작업을 수행합니다.
Task oriented − PowerShell 스크립팅 언어는 작업 기반이며 기존 스크립트 및 명령 줄 도구에 대한 지원을 제공합니다.
Consistent design− cmdlet 및 시스템 데이터 저장소는 공통 구문을 사용하고 공통 명명 규칙을 사용하므로 데이터 공유가 쉽습니다. 한 cmdlet의 출력은 조작없이 다른 cmdlet으로 파이프 라인 될 수 있습니다.
Simple to Use − 단순화 된 명령 기반 탐색을 통해 사용자는 파일 시스템 탐색과 유사한 레지스트리 및 기타 데이터 저장소를 탐색 할 수 있습니다.
Object based− PowerShell에는 강력한 개체 조작 기능이 있습니다. 개체를 다른 도구 나 데이터베이스로 직접 보낼 수 있습니다.
Extensible interface. − PowerShell은 독립 소프트웨어 공급 업체와 엔터프라이즈 개발자가 PowerShell을 사용하여 소프트웨어를 관리하는 사용자 지정 도구 및 유틸리티를 구축 할 수 있으므로 사용자 지정이 가능합니다.
변수
PowerShell 변수는 명명 된 개체입니다. PowerShell은 개체와 함께 작동하므로 이러한 변수는 개체와 함께 작동하는 데 사용됩니다.
변수 생성
변수 이름은 $로 시작해야하며 이름에 영숫자와 밑줄을 포함 할 수 있습니다. 유효한 변수 이름을 입력하여 변수를 만들 수 있습니다.
PowerShell ISE 콘솔에 다음 명령을 입력합니다. D : \ test 폴더에 있다고 가정합니다.
$location = Get-Location
여기에서 $ location 변수를 만들고 Get-Location cmdlet의 출력에 할당했습니다. 이제 현재 위치가 포함됩니다.
변수 사용
PowerShell ISE 콘솔에 다음 명령을 입력합니다.
$location
산출
PowerShell 콘솔에서 다음 출력을 볼 수 있습니다.
Path
----
D:\test
변수 정보 얻기
Get-Member cmdlet은 사용중인 변수의 유형을 알 수 있습니다. 아래 예를 참조하십시오.
$location | Get-Member
산출
PowerShell 콘솔에서 다음 출력을 볼 수 있습니다.
TypeName: System.Management.Automation.PathInfo
Name MemberType Definition
---- ---------- ----------
Equals Method bool Equals(System.Object obj)
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
Drive Property System.Management.Automation.PSDriveInfo Drive {get;}
Path Property System.String Path {get;}
Provider Property System.Management.Automation.ProviderInfo Provider {get;}
ProviderPath Property System.String ProviderPath {get;}
PowerShell 특수 변수는 PowerShell에 대한 정보를 저장합니다. 이를 자동 변수라고도합니다. 다음은 자동 변수 목록입니다-
운영자 | 기술 |
---|---|
$$ | 세션에서받은 마지막 줄의 마지막 토큰을 나타냅니다. |
$? | 마지막 작업의 실행 상태를 나타냅니다. 마지막 작업이 성공하면 TRUE를 포함하고 실패하면 FALSE를 포함합니다. |
$ ^ | 세션에서받은 마지막 줄의 첫 번째 토큰을 나타냅니다. |
$ _ | $ PSItem과 동일합니다. 파이프 라인 개체의 현재 개체를 포함합니다. 모든 개체 또는 파이프 라인의 선택한 개체에 대해 작업을 수행하는 명령에서이 변수를 사용할 수 있습니다. |
$ ARGS | 함수, 스크립트 또는 스크립트 블록에 전달되는 선언되지 않은 매개 변수 및 / 또는 매개 변수 값의 배열을 나타냅니다. |
$ CONSOLEFILENAME | 세션에서 가장 최근에 사용 된 콘솔 파일 (.psc1)의 경로를 나타냅니다. |
$ ERROR | 가장 최근 오류를 나타내는 오류 개체의 배열을 나타냅니다. |
$ EVENT | 처리중인 이벤트를 나타내는 PSEventArgs 개체를 나타냅니다. |
$ EVENTARGS | 처리중인 이벤트의 EventArgs에서 파생되는 첫 번째 이벤트 인수를 나타내는 개체를 나타냅니다. |
$ EVENTSUBSCRIBER | 처리중인 이벤트의 이벤트 구독자를 나타내는 PSEventSubscriber 개체를 나타냅니다. |
$ EXECUTIONCONTEXT | PowerShell 호스트의 실행 컨텍스트를 나타내는 EngineIntrinsics 개체를 나타냅니다. |
$ FALSE | FALSE를 나타냅니다. 이 변수를 사용하여 "false"문자열을 사용하는 대신 명령 및 스크립트에서 FALSE를 나타낼 수 있습니다. |
$ FOREACH | ForEach 루프의 열거 자 (결과 값 아님)를 나타냅니다. $ ForEach 변수의 값에 대해 열거 자의 속성과 메서드를 사용할 수 있습니다. |
$ HOME | 사용자 홈 디렉토리의 전체 경로를 나타냅니다. |
$ HOST | PowerShell의 현재 호스트 응용 프로그램을 나타내는 개체를 나타냅니다. |
$ INPUT | 함수에 전달되는 모든 입력을 열거하는 열거자를 나타냅니다. |
$ LASTEXITCODE | 마지막으로 실행 된 Windows 기반 프로그램의 종료 코드를 나타냅니다. |
$ MATCHES | $ Matches 변수는 -match 및 -notmatch 연산자와 함께 작동합니다. |
$ MYINVOCATION | $ MyInvocation은 스크립트, 함수 및 스크립트 블록에 대해서만 채워집니다. $ MyInvocation 자동 변수의 PSScriptRoot 및 PSCommandPath 속성에는 현재 스크립트가 아닌 호출자 또는 호출 스크립트에 대한 정보가 포함됩니다. |
$ NESTEDPROMPTLEVEL | 현재 프롬프트 수준을 나타냅니다. |
$ NULL | $ null은 NULL 또는 빈 값을 포함하는 자동 변수입니다. 이 변수를 사용하여 명령 및 스크립트에 없거나 정의되지 않은 값을 나타낼 수 있습니다. |
$ PID | 현재 PowerShell 세션을 호스팅하는 프로세스의 PID (프로세스 식별자)를 나타냅니다. |
$ PROFILE | 현재 사용자 및 현재 호스트 응용 프로그램에 대한 PowerShell 프로필의 전체 경로를 나타냅니다. |
$ PSCMDLET | 실행중인 cmdlet 또는 고급 기능을 나타내는 개체를 나타냅니다. |
$ PSCOMMANDPATH | 실행중인 스크립트의 전체 경로 및 파일 이름을 나타냅니다. |
$ PSCULTURE | 운영 체제에서 현재 사용중인 문화권의 이름을 나타냅니다. |
$ PSDEBUGCONTEXT | 디버깅하는 동안이 변수에는 디버깅 환경에 대한 정보가 포함됩니다. 그렇지 않으면 NULL 값을 포함합니다. |
$ PSHOME | PowerShell 용 설치 디렉터리의 전체 경로를 나타냅니다. |
$ PSITEM | $ _와 동일합니다. 파이프 라인 개체의 현재 개체를 포함합니다. |
$ PSSCRIPTROOT | 스크립트가 실행되고있는 디렉토리를 나타냅니다. |
$ PSSENDERINFO | 사용자 ID 및 원래 컴퓨터의 표준 시간대를 포함하여 PSSession을 시작한 사용자에 대한 정보를 나타냅니다. |
$ PSUICULTURE | 현재 운영 체제에서 사용중인 UI (사용자 인터페이스) 문화권의 이름을 나타냅니다. |
$ PSVERSIONTABLE | 현재 세션에서 실행중인 PowerShell 버전에 대한 세부 정보를 표시하는 읽기 전용 해시 테이블을 나타냅니다. |
$ SENDER | 이 이벤트를 생성 한 개체를 나타냅니다. |
$ SHELLID | 현재 쉘의 식별자를 나타냅니다. |
$ STACKTRACE | 가장 최근 오류에 대한 스택 추적을 나타냅니다. |
$ THIS | 스크립트 속성 또는 스크립트 메서드를 정의하는 스크립트 블록에서 $ This 변수는 확장중인 개체를 나타냅니다. |
$ TRUE | TRUE를 나타냅니다. 이 변수를 사용하여 명령 및 스크립트에서 TRUE를 나타낼 수 있습니다. |
PowerShell은 변수를 조작 할 수있는 다양한 연산자를 제공합니다. 모든 PowerShell 연산자를 다음 그룹으로 나눌 수 있습니다.
- 산술 연산자
- 할당 연산자
- 비교 연산자
- 논리 연산자
- 방향 전환 연산자
- 유출 및 조인 연산자
- 유형 연산자
- 단항 연산자
산술 연산자
산술 연산자는 대수에서 사용되는 것과 같은 방식으로 수학 표현식에서 사용됩니다. 다음 표는 산술 연산자를 나열합니다-
정수 변수 A가 10을 보유하고 변수 B가 20을 보유한다고 가정하면-
예시보기
운영자 | 기술 | 예 |
---|---|---|
+ (더하기) | 연산자의 양쪽에 값을 추가합니다. | A + B는 30을 줄 것입니다 |
-(빼기) | 왼쪽 피연산자에서 오른쪽 피연산자를 뺍니다. | A-B는 -10을 줄 것입니다. |
* (곱하기) | 연산자의 양쪽에있는 값을 곱합니다. | A * B는 200을 줄 것입니다 |
/ (나누기) | 왼쪽 피연산자를 오른쪽 피연산자로 나눕니다. | B / A는 2를 줄 것입니다 |
% (모듈러스) | 왼쪽 피연산자를 오른쪽 피연산자로 나누고 나머지를 반환합니다. | B % A는 0을 제공합니다. |
비교 연산자
다음은 PowerShell 언어에서 지원하는 할당 연산자입니다-
정수 변수 A가 10을 보유하고 변수 B가 20을 보유한다고 가정하면-
예시보기
운영자 | 기술 | 예 |
---|---|---|
eq (같음) | 두 값이 같거나 같지 않은지 비교합니다. | A -eq B는 거짓을 제공합니다. |
ne (같지 않음) | 두 값이 같지 않은지 비교합니다. | A -ne B는 사실을 줄 것입니다 |
gt (보다 큼) | 첫 번째 값이 두 번째 값보다 큰지 비교합니다. | B -gt A는 사실을 줄 것입니다 |
ge (크거나 같음) | 첫 번째 값이 두 번째 값보다 크거나 같은지 비교합니다. | B -ge A는 사실을 줄 것입니다 |
lt (보다 작음) | 첫 번째 값을 두 번째 값보다 작게 비교합니다. | B -lt A는 거짓을 줄 것입니다. |
le (작거나 같음) | 첫 번째 값이 두 번째 값보다 작거나 같은지 비교합니다. | B -le A는 거짓을 줄 것입니다. |
할당 연산자
다음은 PowerShell 언어에서 지원하는 할당 연산자입니다-
예시보기
운영자 | 기술 | 예 |
---|---|---|
= | 간단한 할당 연산자. 오른쪽 피연산자의 값을 왼쪽 피연산자에 할당합니다. | C = A + B는 A + B의 값을 C에 할당합니다. |
+ = | AND 할당 연산자를 추가합니다. 왼쪽 피연산자에 오른쪽 피연산자를 추가하고 결과를 왼쪽 피연산자에 할당합니다. | C + = A는 C = C + A와 같습니다. |
-= | AND 할당 연산자를 뺍니다. 왼쪽 피연산자에서 오른쪽 피연산자를 빼고 결과를 왼쪽 피연산자에 할당합니다. | C-= A는 C = C-A와 같습니다. |
논리 연산자
다음 표는 논리 연산자를 나열합니다-
부울 변수 A가 참이고 변수 B가 거짓이라고 가정하면-
예시보기
운영자 | 기술 | 예 |
---|---|---|
AND (논리 및) | 논리 AND 연산자라고합니다. 두 피연산자가 모두 0이 아니면 조건이 참이됩니다. | (A -AND B)는 거짓입니다. |
OR (논리적 OR) | 논리 OR 연산자라고합니다. 두 피연산자 중 하나가 0이 아니면 조건이 참이됩니다. | (A -OR B)가 참 |
NOT (논리적 아님) | 논리 NOT 연산자라고합니다. 피연산자의 논리 상태를 반전하는 데 사용합니다. 조건이 참이면 논리 NOT 연산자는 거짓으로 만듭니다. | -NOT (A -AND B)는 참입니다. |
기타 연산자
다음은 PowerShell 언어에서 지원하는 다양한 중요한 연산자입니다.
예시보기
운영자 | 기술 | 예 |
---|---|---|
> (리디렉션 오퍼레이터) | 방향 전환 연산자. 리디렉션 된 파일 / 출력 장치에 인쇄 할 출력을 지정합니다. | dir> test.log는 test.log 파일의 디렉토리 목록을 인쇄합니다. |
코드 블록을 여러 번 실행해야하는 상황이있을 수 있습니다. 일반적으로 명령문은 순차적으로 실행됩니다. 함수의 첫 번째 명령문이 먼저 실행되고 두 번째 명령문이 실행되는 방식입니다.
프로그래밍 언어는보다 복잡한 실행 경로를 허용하는 다양한 제어 구조를 제공합니다.
ㅏ loop 문을 사용하면 문 또는 문 그룹을 여러 번 실행할 수 있으며 다음은 대부분의 프로그래밍 언어에서 루프 문의 일반적인 형식입니다.
PowerShell 프로그래밍 언어는 루핑 요구 사항을 처리하기 위해 다음 유형의 루프를 제공합니다. 자세한 내용을 확인하려면 다음 링크를 클릭하십시오.
Sr. 아니. | 루프 및 설명 |
---|---|
1 | for 루프
일련의 문을 여러 번 실행하고 루프 변수를 관리하는 코드를 축약합니다. |
2 | forEach 루프
for 루프가 향상되었습니다. 주로 배열을 포함한 요소 모음을 탐색하는 데 사용됩니다. |
삼 | while 루프
주어진 조건이 참인 동안 명령문 또는 명령문 그룹을 반복합니다. 루프 본문을 실행하기 전에 조건을 테스트합니다. |
4 | do ... while 루프
while 문과 비슷하지만 루프 본문의 끝에서 조건을 테스트한다는 점이 다릅니다. |
의사 결정 구조에는 조건이 참인 경우 실행될 명령문과 함께 프로그램에서 평가하거나 테스트 할 하나 이상의 조건이 있으며, 조건이 판별되면 실행될 다른 명령문도 선택적으로 포함됩니다. 거짓입니다.
다음은 대부분의 프로그래밍 언어에서 발견되는 일반적인 의사 결정 구조의 일반적인 형태입니다.
PowerShell 스크립팅 언어는 다음 유형의 의사 결정 문을 제공합니다. 자세한 내용을 확인하려면 다음 링크를 클릭하십시오.
Sr. 아니. | 성명 및 설명 |
---|---|
1 | if 문
안 if statement 부울 표현식과 하나 이상의 문으로 구성됩니다. |
2 | if ... else 문
안 if statement 뒤에 선택 사항이 올 수 있습니다. else statement, 부울 표현식이 false 일 때 실행됩니다. |
삼 | 중첩 된 if 문
하나를 사용할 수 있습니다 if 또는 elseif 다른 내부의 진술 if 또는 elseif 진술 (들). |
4 | switch 문
ㅏ switch 문을 사용하면 변수가 값 목록과 같은지 테스트 할 수 있습니다. |
PowerShell은 데이터 구조를 제공합니다. array, 모든 유형 요소의 고정 크기 순차 컬렉션을 저장합니다. 배열은 데이터 모음을 저장하는 데 사용되지만 배열을 변수 또는 개체 모음으로 생각하는 것이 더 유용합니다.
number0, number1, ..., number99와 같은 개별 변수를 선언하는 대신 숫자와 같은 하나의 배열 변수를 선언하고 numbers [0], numbers [1], ..., numbers [99]를 사용하여 개별 변수.
이 자습서에서는 인덱스 변수를 사용하여 배열 변수를 선언하고, 배열을 만들고, 배열을 처리하는 방법을 소개합니다.
배열 변수 선언
프로그램에서 배열을 사용하려면 배열을 참조하는 변수를 선언해야하며 변수가 참조 할 수있는 배열 유형을 지정할 수 있습니다. 다음은 배열 변수를 선언하는 구문입니다.
통사론
$A = 1, 2, 3, 4
or
$A = 1..4
Note− 기본적으로 배열의 객체 유형은 System.Object입니다. GetType () 메서드는 배열의 유형을 반환합니다. 유형을 전달할 수 있습니다.
예
다음 코드 조각은이 구문의 예입니다.
[int32[]]$intA = 1500,2230,3350,4000
$A = 1, 2, 3, 4
$A.getType()
이것은 다음 결과를 생성합니다-
산출
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Object[] System.Array
배열 요소는 index. 배열 인덱스는 0부터 시작합니다. 즉, 0에서 시작하여arrayRefVar.length-1.
예
다음 명령문은 배열 변수 myList를 선언하고 이중 유형의 10 개 요소로 구성된 배열을 만들고 myList에 대한 참조를 할당합니다.
$myList = 5.6, 4.5, 3.3, 13.2, 4.0, 34.33, 34.0, 45.45, 99.993, 11123
다음 그림은 배열 myList를 나타냅니다. 여기서 myList는 10 개의 이중 값을 보유하고 인덱스는 0에서 9까지입니다.
배열 처리
배열 요소를 처리 할 때 종종 다음 중 하나를 사용합니다. for 루프 또는 foreach 배열의 모든 요소가 동일한 유형이고 배열의 크기를 알고 있기 때문에 루프가 발생합니다.
예
다음은 배열을 생성, 초기화 및 처리하는 방법을 보여주는 완전한 예입니다.
$myList = 5.6, 4.5, 3.3, 13.2, 4.0, 34.33, 34.0, 45.45, 99.993, 11123
write-host("Print all the array elements")
$myList
write-host("Get the length of array")
$myList.Length
write-host("Get Second element of array")
$myList[1]
write-host("Get partial array")
$subList = $myList[1..3]
write-host("print subList")
$subList
write-host("using for loop")
for ($i = 0; $i -le ($myList.length - 1); $i += 1) {
$myList[$i]
}
write-host("using forEach Loop")
foreach ($element in $myList) {
$element
}
write-host("using while Loop")
$i = 0
while($i -lt 4) {
$myList[$i];
$i++
}
write-host("Assign values")
$myList[1] = 10
$myList
이것은 다음 결과를 생성합니다-
산출
Print all the array elements
5.6
4.5
3.3
13.2
4
34.33
34
45.45
99.993
11123
Get the length of array
10
Get Second element of array
4.5
Get partial array
print subList
4.5
3.3
13.2
using for loop
5.6
4.5
3.3
13.2
4
34.33
34
45.45
99.993
11123
using forEach Loop
5.6
4.5
3.3
13.2
4
34.33
34
45.45
99.993
11123
using while Loop
5.6
4.5
3.3
13.2
Assign values
5.6
10
3.3
13.2
4
34.33
34
45.45
99.993
11123
배열 방법 예제
다음은 해당 메서드를 사용하여 배열에 대한 작업을 보여주는 완전한 예입니다.
$myList = @(0..4)
write-host("Print array")
$myList
$myList = @(0..4)
write-host("Assign values")
$myList[1] = 10
$myList
이것은 다음 결과를 생성합니다-
산출
Clear array
Print array
0
1
2
3
4
Assign values
0
10
2
3
4
Hashtable은 키 / 값 쌍을 해시 테이블에 저장합니다. Hashtable을 사용할 때 키로 사용되는 객체와 해당 키에 연결할 값을 지정합니다. 일반적으로 문자열이나 숫자를 키로 사용했습니다.
이 자습서에서는 해시 테이블 변수를 선언하고, 해시 테이블을 만들고, 해당 메서드를 사용하여 해시 테이블을 처리하는 방법을 소개합니다.
해시 테이블 변수 선언
프로그램에서 해시 테이블을 사용하려면 해시 테이블을 참조하는 변수를 선언해야합니다. 다음은 해시 테이블 변수를 선언하는 구문입니다.
통사론
$hash = @{ ID = 1; Shape = "Square"; Color = "Blue"}
or
$hash = @{}
Note− 유사한 구문을 사용하여 정렬 된 사전을 만들 수 있습니다. 정렬 된 사전은 항목이 추가되는 순서를 유지하지만 해시 테이블은 그렇지 않습니다.
예
다음 코드 조각은이 구문의 예입니다.
$hash = [ordered]@{ ID = 1; Shape = "Square"; Color = "Blue"}
해시 테이블을 인쇄하십시오.
$hash
산출
Name Value
---- -----
ID 1
Color Blue
Shape Square
해시 테이블 값은 keys.
> $hash["ID"]
1
해시 테이블 처리
점 표기법을 사용하여 해시 테이블 키 또는 값에 액세스 할 수 있습니다.
> $hash.keys
ID
Color
Shape
> $hash.values
1
Blue
Square
예
다음은 해시 테이블을 생성, 초기화 및 처리하는 방법을 보여주는 완전한 예입니다.
$hash = @{ ID = 1; Shape = "Square"; Color = "Blue"}
write-host("Print all hashtable keys")
$hash.keys
write-host("Print all hashtable values")
$hash.values
write-host("Get ID")
$hash["ID"]
write-host("Get Shape")
$hash.Number
write-host("print Size")
$hash.Count
write-host("Add key-value")
$hash["Updated"] = "Now"
write-host("Add key-value")
$hash.Add("Created","Now")
write-host("print Size")
$hash.Count
write-host("Remove key-value")
$hash.Remove("Updated")
write-host("print Size")
$hash.Count
write-host("sort by key")
$hash.GetEnumerator() | Sort-Object -Property key
이것은 다음 결과를 생성합니다-
산출
Print all hashtable keys
ID
Color
Shape
Print all hashtable values
1
Blue
Square
Get ID
1
Get Shape
print Size
3
Add key-value
Add key-value
print Size
5
Remove key-value
print Size
4
sort by key
Name Value
---- -----
Color Blue
Created Now
ID 1
Shape
Square
정규식은 패턴에 포함 된 특수 구문을 사용하여 다른 문자열 또는 문자열 집합을 일치 시키거나 찾는 데 도움이되는 특수 문자 시퀀스입니다. 텍스트와 데이터를 검색, 편집 또는 조작하는 데 사용할 수 있습니다.
다음은 PowerShell에서 사용할 수있는 모든 정규식 메타 문자 구문을 나열한 표입니다.
하위 표현 | 성냥 |
---|---|
^ | 줄의 시작과 일치합니다. |
$ | 줄의 끝과 일치합니다. |
. | 개행을 제외한 모든 단일 문자와 일치합니다. 사용m 옵션을 사용하면 개행 문자도 일치시킬 수 있습니다. |
[...] | 괄호 안의 모든 단일 문자와 일치합니다. |
[^ ...] | 대괄호가 아닌 단일 문자와 일치합니다. |
\ㅏ | 전체 문자열의 시작입니다. |
\지 | 전체 문자열의 끝입니다. |
\지 | 허용되는 마지막 줄 종결자를 제외한 전체 문자열의 끝입니다. |
레* | 0 개 이상의 이전 표현식과 일치합니다. |
re + | 이전 항목 중 하나 이상과 일치합니다. |
레? | 0 개 또는 1 개의 이전 표현식과 일치합니다. |
re {n} | 정확히 n 개의 이전 표현식과 일치합니다. |
re {n,} | n 개 이상의 이전 표현식과 일치합니다. |
re {n, m} | 이전 표현식의 최소 n 개 및 최대 m 개 항목과 일치합니다. |
a | 비 | a 또는 b와 일치합니다. |
(레) | 정규식을 그룹화하고 일치하는 텍스트를 기억합니다. |
(? : 다시) | 일치하는 텍스트를 기억하지 않고 정규식을 그룹화합니다. |
(?> 다시) | 역 추적없이 독립적 인 패턴과 일치합니다. |
\ w | 단어 문자와 일치합니다. |
\ W | 단어가 아닌 문자와 일치합니다. |
\에스 | 공백과 일치합니다. [\ t \ n \ r \ f]와 같습니다. |
\에스 | 비공 백과 일치합니다. |
\디 | 숫자와 일치합니다. [0-9]와 같습니다. |
\디 | 숫자가 아닌 것과 일치합니다. |
\ㅏ | 문자열의 시작과 일치합니다. |
\지 | 문자열의 끝과 일치합니다. 개행이 존재하면 개행 직전에 일치합니다. |
\지 | 문자열의 끝과 일치합니다. |
\지 | 마지막 경기가 끝난 지점과 일치합니다. |
\엔 | 캡처 그룹 번호 "n"에 대한 역 참조. |
\비 | 대괄호 밖에있을 때 단어 경계와 일치합니다. 대괄호 안에있을 때 백 스페이스 (0x08)와 일치합니다. |
\비 | 비 단어 경계와 일치합니다. |
\ n, \ t 등 | 줄 바꿈, 캐리지 리턴, 탭 등과 일치합니다. |
\큐 | \ E까지 모든 문자를 이스케이프 (인용)합니다. |
\이자형 | \ Q로 시작하는 인용을 끝냅니다. |
다음은 PowerShell에서 regex를 사용하는 방법을 보여주는 전체 예제입니다.
Sr. 아니. | 경기 및 설명 |
---|---|
1 | 문자 일치
지원되는 정규식 문자의 예입니다. |
2 | 캐릭터 클래스 일치
지원되는 문자 클래스의 예. |
삼 | 한정자 일치
지원되는 수량 자의 예입니다. |
백틱 (`) 연산자는 단어 줄 바꿈 연산자라고도합니다. 명령을 여러 줄로 작성할 수 있습니다. 문장의 줄 바꿈 (`n) 또는 탭 (`t)에도 사용할 수 있습니다. 아래 예를 참조하십시오-
예 1
Get-Service * | Sort-Object ServiceType `
| Format-Table Name, ServiceType, Status -AutoSize
그것은 될 것입니다
Get-Service * | Sort-Object ServiceType | Format-Table Name, ServiceType, Status -AutoSize
출력을 다음과 같이 확인하십시오.
Name ServiceType Status
---- ----------- ------
MSSQLServerADHelper100 Win32OwnProcess Stopped
ntrtscan Win32OwnProcess Running
...
예 2
새 줄 및 탭 사용.
> Write-host "Title Subtitle"
Title Subtitle
> Write-host "Title `nSubtitle"
Title
Subtitle
> Write-host "Title `tSubtitle"
Title Subtitle
Powershell은 세 가지 유형의 브래킷을 지원합니다.
Parenthesis brackets. − ()
Braces brackets. − {}
Square brackets. − []
괄호 괄호
이 유형의 대괄호는
인수 전달
여러 가지 지침을 동봉
모호함을 해결하다
배열 생성
예
> $array = @("item1", "item2", "item3")
> foreach ($element in $array) { $element }
item1
item2
item3
중괄호 브래킷
이 유형의 대괄호는
문을 묶다
블록 명령
예
$x = 10
if($x -le 20){
write-host("This is if statement")
}
이것은 다음 결과를 생성합니다-
산출
This is if statement.
대괄호
이 유형의 대괄호는
어레이에 대한 액세스
해시 테이블에 대한 액세스
정규 표현식을 사용하여 필터링
예
> $array = @("item1", "item2", "item3")
> for($i = 0; $i -lt $array.length; $i++){ $array[$i] }
item1
item2
item3
>Get-Process [r-s]*
Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
------- ------ ----- ----- ----- ------ -- -----------
320 72 27300 33764 227 3.95 4028 SCNotification
2298 77 57792 48712 308 2884 SearchIndexer
...
PowerShell 별칭은 cmdlet 또는 모든 명령 요소의 다른 이름입니다.
별칭 생성
사용하다 New-Aliascmdlet을 사용하여 별칭을 만듭니다. 아래 예에서는 Get-Help cmdlet에 대한 별칭 도움말을 만들었습니다.
New-Alias -Name help -Value Get-Help
이제 별칭을 호출하십시오.
help Get-WmiObject -Detailed
다음과 같은 출력이 표시됩니다.
NAME
Get-WmiObject
SYNOPSIS
Gets instances of Windows Management Instrumentation (WMI) classes or information about the available classes.
SYNTAX
Get-WmiObject [
...
별칭 가져 오기
사용하다 get-alias cmdlet은 현재 powershell 세션에있는 모든 별칭을 가져옵니다.
Get-Alias
다음과 같은 출력이 표시됩니다.
CommandType Name Definition
----------- ---- ----------
Alias % ForEach-Object
Alias ? Where-Object
Alias ac Add-Content
Alias asnp Add-PSSnapIn
...
인쇄