👻

PowerShell超基礎入門 ~何度も忘れるあなたへ~

に公開

🎯 PowerShellとは?

  • Windows標準搭載のシェル&スクリプト言語です(今はMacやLinuxにも対応してる)
  • コマンド操作だけじゃなく、プログラミングもできます
  • .ps1という拡張子のファイルでスクリプトを書きます
  • データ操作に強い(特にオブジェクト操作が超強力)

🛠️ PowerShell基礎文法

まずは、最低限知っておくべき超基本から👇

1. コマンドレッドの実行

Get-Process

今動いているプロセス一覧を表示するコマンドレッド

💡 Cmdlet(コマンドレット)とは?

簡単にいうと…

普通のコマンド(例:dir PowerShellのコマンドレット(例:Get-ChildItem
OSに直接命令する感じ .NETオブジェクトを操作する小さなプログラム

つまり、

  • Cmdletはミニアプリみたいなもの
  • 結果も文字列じゃなくてオブジェクトとして返します

これが、Bashやコマンドプロンプトとは一線を画してるポイントなんです🔥

🎯 Cmdletの特徴まとめ

✅ 名前は必ず「動詞-名詞」形式(例:Get-Process
✅ すべて「.NETオブジェクト」を返す
✅ 小さなC#のクラスみたいな動きをする
✅ パイプライン(|)で超強力に繋げられる

🌟 Unix哲学っぽさ

Unixの哲学 PowerShellの考え方
小さなプログラムを作る 小さなCmdletを作る
テキストをパイプでつなぐ オブジェクトをパイプでつなぐ
それぞれ単機能にする Cmdletも「Getするだけ」「Setするだけ」とかに分ける
コマンドを組み合わせて強力にする パイプラインでCmdletを組み合わせて強力にする

重要かつ大きな違い⤵️

  • Unix = テキストがすべて
  • PowerShell = オブジェクトがすべて

誤解を恐れずに言うならば、PowerShellは「オブジェクト指向Unix」🔥


2. 変数の使い方

$greeting = "Hello, PowerShell!"
Write-Output $greeting

$から始まる名前が変数
Write-Outputで画面に出力します


3. ループ処理

foreach ($i in 1..5) {
    Write-Output "Number: $i"
}

1から5まで繰り返して出力します


4. If文(条件分岐)

$number = 10

if ($number -gt 5) {
    Write-Output "5より大きい"
} else {
    Write-Output "5以下"
}
  • -gtは「greater than(より大きい)」という意味
  • PowerShellは比較演算子が英語っぽい!
比較演算子 意味
-eq 等しい
-ne 等しくない
-gt より大きい
-lt より小さい
-ge 以上
-le 以下

5. 配列の使い方

配列はデータをまとめて管理するのに使います。

# 配列を作る
$fruits = @("Apple", "Banana", "Cherry")

# 配列の中身を表示
$fruits

# 配列から1個取り出す(0からスタート)
$fruits[1]  # Banana

💡 配列の要素番号は「0からスタート」です。


6. 関数(Function)の作り方

関数を使うと、コードをまとめて使い回しできるようになります。

function Say-Hello {
    Write-Output "Hello, World!"
}

# 関数を呼び出す
Say-Hello

引数(パラメータ)を渡せるバージョンも!

function Greet-Person {
    param($name)
    Write-Output "Hello, $name!"
}

Greet-Person -name "Alice"
  • paramブロックで引数を定義します
  • -nameみたいにオプションっぽく渡します

7. ハッシュテーブル(辞書型データ)

KeyとValueをセットで持つやつ。Pythonのdictに近い!

# ハッシュテーブルを作成
$user = @{
    Name = "John Doe"
    Age  = 30
    City = "Tokyo"
}

# 特定のキーにアクセス
$user["Name"]

# ハッシュテーブルに新しい値を追加
$user["Country"] = "Japan"

# 全部表示
$user

8. パイプライン操作(超PowerShellっぽい機能)

PowerShellはパイプライン|)でデータを次のコマンドに流すのが得意!

# サービス一覧から「Running」のものだけを抽出
Get-Service | Where-Object {$_.Status -eq "Running"}

解説:

  • Get-Service ➔ 全サービス一覧
  • | ➔ 結果を次のコマンドに渡す
  • Where-Object ➔ 条件でフィルターする
  • $_ ➔ いま流れているデータの「1行分」を表す特別な変数

🏁 まとめ

機能 覚えたこと
コマンド Windowsの基本コマンドを覚えた
変数 変数の基本を理解
ループ ループ処理を理解
条件 条件分岐を理解
配列 データをまとめて管理
関数 コードを使い回す
ハッシュテーブル Key-Valueでデータ管理
パイプライン コマンド同士を繋ぐ

💬 PowerShellの基礎文法を何度も忘れる自分へ
いつでもここに戻ってくれば3分で素振りの素振りだ🔥

Discussion