言語ごとに書き方が若干異なる部分を中心にまとめています。
特徴
PowerShellは、Microsoftによって開発されたWindowsオペレーティングシステム向けのコマンドラインインターフェース(CLI)です。その特徴は以下の通りです。
- Windowsに特化したコマンドラインインターフェース
- .NET Frameworkに基づいていること
- オブジェクト指向性を持っていること
- コマンドレット(Cmdlet)と呼ばれる小さなプログラムを組み合わせてタスクを自動化することができる
- リモート管理機能を持っていること
- XMLやCSVなどのファイルフォーマットを扱うことができる
PowerShellは、Windowsシステム管理やネットワーク管理において非常に有用なツールとなっており、システムの設定やログの管理、バッチ処理などを行うために使用されます。
また、PowerShellは拡張性が高く、独自のコマンドレットを作成することでさらに柔軟な操作が可能です。
参考サイト
PowerShell ドキュメント - PowerShell
PowerShell の公式製品ドキュメント
比較演算子
演算子 | 説明 |
-eq | 等しい |
-ne | 等しくない |
-gt | より大きい |
-ge | 以上 |
-lt | より小さい |
-le | 以下 |
-like | ワイルドカードと等しい |
-notlike | ワイルドカードと等しくない |
-match | 正規表現と等しい |
-notmatch | 正規表現と等しくない |
論理演算子
演算子 | 説明 |
-And | And |
-Or | Or |
-Xor | Xor |
-Not / ! | Not |
if ($TRUE -And $TRUE) { Write-Output("And") }
if ($TRUE -Or $FALSE) { Write-Output("Or") }
if ($TRUE -Xor $TRUE) { Write-Output("Xor") #XORだから実行されない }
if (-Not($FALSE)) { Write-Output("Not") }
if (!$FALSE) { Write-Output("!") }
繰り返し
for ($i = 0; $i -lt 10; $i++) { Write-Output($i) }
配列
$array = @(1, 2, 3, 4, 5) foreach ($i in $array) { Write-Output $i }
特定の要素を取得(Where-Object)
Get-Process | Where-Object {$_.ProcessName -match "chr"}
Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName ------- ------ ----- ----- ------ -- -- ----------- 238 10 3572 8300 0.95 32 14 chrome 236 19 19368 27028 0.59 1652 14 chrome 245 24 46928 56932 3.28 3832 14 chrome :
配列の要素全てを処理する(ForEach-Object)
Get-Process | ForEach-Object {Write-Output $_.ProcessName}
要素名を取得する(Get-Member)
Get-Process | Get-Member
TypeName: System.Diagnostics.Process Name MemberType Definition ---- ---------- ---------- Handles AliasProperty Handles = Handlecount Name AliasProperty Name = ProcessName NPM AliasProperty NPM = NonpagedSystemMemorySize64 PM AliasProperty PM = PagedMemorySize64 SI AliasProperty SI = SessionId VM AliasProperty VM = VirtualMemorySize64 WS AliasProperty WS = WorkingSet64
ファイルが存在するか
if (Test-Path hoge.txt) { Write-Output("ファイルが存在している") }