PowerShellのまとめ

言語
スポンサーリンク

言語ごとに書き方が若干異なる部分を中心にまとめています。

特徴

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("ファイルが存在している")
}
タイトルとURLをコピーしました