mcpField
P
powershell-windows

powershell-windows

github.com/davila7開発33.0k453 回インストール今日更新
リポジトリ

powershell-windows について

Windows向けスクリプトの構文とよくある落とし穴を扱うPowerShellのリファレンススキルです。演算子、nullチェック、パス、JSON、エラー処理について、安全な書き方を例示します。

主な機能

  1. 01演算子での括弧のルール
  2. 02ASCII文字のみを使う指針
  3. 03null安全なアクセスパターン
  4. 04文字列補間の指針
  5. 05エラー処理の実践例
  6. 06パス、配列、JSONのパターン

活用シーン

  1. 01論理演算子の解析エラー回避
  2. 02任意値の安全な処理
  3. 03堅牢なJSONファイル操作
  4. 04スクリプトのエラー動作の選択

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/davila7/claude-code-templates --skill powershell-windows

インストール後、Claude Code で/powershell-windowsを入力して読み込まれたか確認します。

詳細

PowerShell Windows パターン

Windows PowerShell における重要なパターンと注意点です。


1. 演算子の構文ルール

重要: 括弧が必須
❌ 誤り✅ 正しい
if (Test-Path "a" -or Test-Path "b")if ((Test-Path "a") -or (Test-Path "b"))
if (Get-Item $x -and $y -eq 5)if ((Get-Item $x) -and ($y -eq 5))

ルール: 論理演算子を使用する場合、各コマンドレット呼び出しは必ず括弧で囲んでください。


2. Unicode/絵文字の制限

重要: スクリプトで Unicode を使用しない
用途❌ 使用しない✅ 使用する
成功✅ ✓[OK] [+]
エラー❌ ✗ 🔴[!] [X]
警告⚠️ 🟡[*] [WARN]
情報ℹ️ 🔵[i] [INFO]
進行中⏳[...]

ルール: PowerShell スクリプトでは ASCII 文字のみを使用してください。


3. null チェックのパターン

アクセス前に必ず確認する
❌ 誤り✅ 正しい
$array.Count -gt 0$array -and $array.Count -gt 0
$text.Lengthif ($text) { $text.Length }

4. 文字列補間

複雑な式
❌ 誤り✅ 正しい
"Value: $($obj.prop.sub)"先に変数へ格納する

パターン:

$value = $obj.prop.sub
Write-Output "Value: $value"

5. エラー処理

ErrorActionPreference
値用途
Stop開発時(早期に失敗させる)
Continue本番スクリプト
SilentlyContinueエラーが想定される場合
Try/Catch のパターン
  • try ブロック内で return しないでください
  • クリーンアップには finally を使用してください
  • try/catch の後で return してください

6. ファイルパス

Windows のパスのルール
パターン用途
リテラルパスC:\Users\User\file.txt
変数パスJoin-Path $env:USERPROFILE "file.txt"
相対パスJoin-Path $ScriptDir "data"

ルール: クロスプラットフォームでの安全性のため、Join-Path を使用してください。


7. 配列操作

正しいパターン
操作構文
空の配列$array = @()
要素の追加$array += $item
ArrayList への追加`$list.Add($item)

8. JSON 操作

重要: Depth パラメーター
❌ 誤り✅ 正しい
ConvertTo-JsonConvertTo-Json -Depth 10

ルール: ネストされたオブジェクトには、必ず -Depth を指定してください。

ファイル操作
操作パターン
読み取り`Get-Content "file.json" -Raw
書き込み`$data

9. よくあるエラー

エラーメッセージ原因対処法
"parameter 'or'"括弧の欠落コマンドレットを () で囲む
"Unexpected token"Unicode 文字ASCII のみを使用する
"Cannot find property"null オブジェクト先に null を確認する
"Cannot convert"型の不一致.ToString() を使用する

10. スクリプトのテンプレート

# Strict mode
Set-StrictMode -Version Latest
$ErrorActionPreference = "Continue"

# Paths
$ScriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path

# Main
try {
    # Logic here
    Write-Output "[OK] Done"
    exit 0
}
catch {
    Write-Warning "Error: $_"
    exit 1
}

注意: PowerShell には独自の構文ルールがあります。括弧、ASCII のみの使用、null チェックは必ず守ってください。

コメント