powershell-windows

PowerShell Windows Patterns

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "powershell-windows" with this command: npx skills add tai-ch0802/skills-bundle/tai-ch0802-skills-bundle-powershell-windows

PowerShell Windows Patterns

Critical patterns and pitfalls for Windows PowerShell.

  1. Operator Syntax Rules

CRITICAL: Parentheses Required

❌ Wrong ✅ Correct

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))

Rule: Each cmdlet call MUST be in parentheses when using logical operators.

  1. Unicode/Emoji Restriction

CRITICAL: No Unicode in Scripts

Purpose ❌ Don't Use ✅ Use

Success ✅ ✓ [OK] [+]

Error ❌ ✗ 🔴 [!] [X]

Warning ⚠️ 🟡 [*] [WARN]

Info ℹ️ 🔵 [i] [INFO]

Progress ⏳ [...]

Rule: Use ASCII characters only in PowerShell scripts.

  1. Null Check Patterns

Always Check Before Access

❌ Wrong ✅ Correct

$array.Count -gt 0

$array -and $array.Count -gt 0

$text.Length

if ($text) { $text.Length }

  1. String Interpolation

Complex Expressions

❌ Wrong ✅ Correct

"Value: $($obj.prop.sub)"

Store in variable first

Pattern:

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

  1. Error Handling

ErrorActionPreference

Value Use

Stop Development (fail fast)

Continue Production scripts

SilentlyContinue When errors expected

Try/Catch Pattern

  • Don't return inside try block

  • Use finally for cleanup

  • Return after try/catch

  1. File Paths

Windows Path Rules

Pattern Use

Literal path C:\Users\User\file.txt

Variable path Join-Path $env:USERPROFILE "file.txt"

Relative Join-Path $ScriptDir "data"

Rule: Use Join-Path for cross-platform safety.

  1. Array Operations

Correct Patterns

Operation Syntax

Empty array $array = @()

Add item $array += $item

ArrayList add `$list.Add($item)

  1. JSON Operations

CRITICAL: Depth Parameter

❌ Wrong ✅ Correct

ConvertTo-Json

ConvertTo-Json -Depth 10

Rule: Always specify -Depth for nested objects.

File Operations

Operation Pattern

Read `Get-Content "file.json" -Raw

Write `$data

  1. Common Errors

Error Message Cause Fix

"parameter 'or'" Missing parentheses Wrap cmdlets in ()

"Unexpected token" Unicode character Use ASCII only

"Cannot find property" Null object Check null first

"Cannot convert" Type mismatch Use .ToString()

  1. Script Template

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 }

Remember: PowerShell has unique syntax rules. Parentheses, ASCII-only, and null checks are non-negotiable.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

testing-mastery

No summary provided by upstream source.

Repository SourceNeeds Review
General

prd

No summary provided by upstream source.

Repository SourceNeeds Review
General

skill-creator

No summary provided by upstream source.

Repository SourceNeeds Review