Skip to content
Marketplace

powershell-windows

by sickn33

PowerShell Windows patterns. Critical pitfalls, operator syntax, error handling.

Overview

SKILL.mdRead at 1e53ce2

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.


2. 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.


3. Null Check Patterns

Always Check Before Access
❌ Wrong✅ Correct
$array.Count -gt 0$array -and $array.Count -gt 0
$text.Lengthif ($text) { $text.Length }

4. String Interpolation

Complex Expressions
❌ Wrong✅ Correct
"Value: $($obj.prop.sub)"Store in variable first

Pattern:

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

5. Error Handling

ErrorActionPreference
ValueUse
StopDevelopment (fail fast)
ContinueProduction scripts
SilentlyContinueWhen errors expected
Try/Catch Pattern
  • Don't return inside try block
  • Use finally for cleanup
  • Return after try/catch

6. File Paths

Windows Path Rules
PatternUse
Literal pathC:\Users\User\file.txt
Variable pathJoin-Path $env:USERPROFILE "file.txt"
RelativeJoin-Path $ScriptDir "data"

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


7. Array Operations

Correct Patterns
OperationSyntax
Empty array$array = @()
Add item$array += $item
ArrayList add`$list.Add($item)

8. JSON Operations

CRITICAL: Depth Parameter
❌ Wrong✅ Correct
ConvertTo-JsonConvertTo-Json -Depth 10

Rule: Always specify -Depth for nested objects.

File Operations
OperationPattern
Read`Get-Content "file.json" -Raw
Write`$data

9. Common Errors

Error MessageCauseFix
"parameter 'or'"Missing parenthesesWrap cmdlets in ()
"Unexpected token"Unicode characterUse ASCII only
"Cannot find property"Null objectCheck null first
"Cannot convert"Type mismatchUse .ToString()

10. 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.

When to Use

This skill is applicable to execute the workflow or actions described in the overview.

Limitations

  • Use this skill only when the task clearly matches the scope described above.
  • Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
  • Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.

Files 1 file

Install it by hand

Deska runs this for you, for every agent you pick. To run it yourself in a terminal:

npx skills add sickn33/agentic-awesome-skills --skill powershell-windows

More from sickn33

  • nodejs-best-practicessickn33Node.js development principles and decision-making. Framework selection, async patterns, security, and architecture. Teaches thinking, not copying.13.7K installs on skills.sh0
  • typescript-expertsickn33TypeScript and JavaScript expert with deep knowledge of type-level programming, performance optimization, monorepo management, migration strategies, and modern tooling.12.3K installs on skills.sh0
  • clean-codesickn33This skill embodies the principles of \"Clean Code\" by Robert C. Martin (Uncle Bob). Use it to transform \"code that works\" into \"code that is clean.\"12K installs on skills.sh0
  • api-security-best-practicessickn33Implement secure API design patterns including authentication, authorization, input validation, rate limiting, and protection against common API vulnerabilities8,700 installs on skills.sh0
  • nextjs-best-practicessickn33Next.js App Router principles. Server Components, data fetching, routing patterns.7,200 installs on skills.sh0
All skills by sickn33