powershell-windows
sickn33/antigravity-awesome-skills
Master PowerShell Windows syntax rules, error handling, and critical pitfalls to write reliable scripts.
What is powershell-windows?
PowerShell Windows Patterns provides essential syntax rules, operator requirements, and error-handling patterns for Windows PowerShell scripting. Use this when writing or debugging PowerShell scripts to avoid common pitfalls like missing parentheses, unicode characters, and null reference errors.
- Enforces correct operator syntax with parentheses requirements for logical operators
- Prevents unicode/emoji usage in scripts with ASCII-only character rules
- Provides null-check patterns to avoid null reference exceptions
- Guides string interpolation and complex expression handling
- Establishes error handling patterns with ErrorActionPreference and try/catch blocks
- Specifies file path operations using Join-Path for cross-platform safety
How to install powershell-windows
npx skills add https://github.com/sickn33/antigravity-awesome-skills --skill powershell-windowsHow to use powershell-windows
- 1.Review the operator syntax rules section before using logical operators in conditionals
- 2.Apply null-check patterns before accessing properties on variables
- 3.Use Join-Path instead of string concatenation for file paths
- 4.Wrap cmdlet calls in parentheses when combining with logical operators
- 5.Specify -Depth parameter when using ConvertTo-Json on nested objects
- 6.Use the provided script template as a starting point for new scripts
- 7.Reference the common errors table when encountering unexpected token or parameter errors
Use cases
- Writing production PowerShell scripts with proper error handling and null checks
- Debugging operator syntax errors when using -or, -and with cmdlet calls
- Converting objects to JSON with correct depth parameters for nested structures
- Handling file paths safely across different Windows environments
- Implementing try/catch blocks with proper cleanup and exit codes
- Windows system administrators
- PowerShell developers and scripters
- DevOps engineers using PowerShell automation
- Anyone debugging PowerShell syntax errors
powershell-windows FAQ
PowerShell's parser requires each cmdlet call to be wrapped in parentheses when used with -or or -and operators to properly evaluate the boolean expression.
No. Use ASCII-only characters in scripts. Replace emoji with ASCII alternatives like [OK], [!], [*], or [i] for status indicators.
Stop fails immediately (good for development), Continue allows script to continue on errors (production), and SilentlyContinue suppresses error output when errors are expected.
Join-Path handles path separators correctly across different contexts and is safer than string concatenation for constructing file paths.
Without -Depth, nested objects may not serialize completely, resulting in truncated or incomplete JSON output. Always specify -Depth 10 or higher for nested structures.
Full instructions (SKILL.md)
Source of truth, from sickn33/antigravity-awesome-skills.
name: powershell-windows description: "PowerShell Windows patterns. Critical pitfalls, operator syntax, error handling." risk: unknown source: community date_added: "2026-02-27"
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.Length | if ($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
| 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
6. 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.
7. Array Operations
Correct Patterns
| Operation | Syntax |
|---|---|
| Empty array | $array = @() |
| Add item | $array += $item |
| ArrayList add | `$list.Add($item) |
8. 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 |
9. 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() |
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.
Related skills
More from sickn33/antigravity-awesome-skills and the wider catalog.

pptx-official
A user may ask you to create, edit, or analyze the contents of a .pptx file. A .pptx file is essentially a ZIP archive containing XML files and other resources that you can read or edit. You have different tools and workflows available for different tasks.

pricing-strategy
Design pricing, packaging, and monetization strategies based on value, customer willingness to pay, and growth objectives.

prisma-expert
Expert Prisma ORM guidance for schema design, migrations, query optimization, and database operations.

product-manager-toolkit
Essential tools and frameworks for modern product management, from discovery to delivery.

production-code-audit
Autonomously deep-scan entire codebase line-by-line, understand architecture and patterns, then systematically transform it to production-grade, corporate-level professional quality with optimizations

prompt-caching
Caching strategies for LLM prompts including Anthropic prompt