👻
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