All symptoms日本語

T03

With -File, a,b stays one string instead of an array

Symptom

You write -Path a,b expecting two paths. The script gets one path named a,b, then reports it missing or silently does nothing.

Check it in 30 seconds

Paste into Windows PowerShell 5.1. It only creates files under your %TEMP% folder. If the last line says REPRODUCED, it happens on your machine.

$d = Join-Path $env:TEMP ('cc-trap-' + (Get-Date -Format 'yyyyMMddHHmmss')); New-Item -ItemType Directory $d -Force | Out-Null
[IO.File]::WriteAllText("$d\arr.ps1", 'param([string[]]$Path) "count=$($Path.Count) first=$($Path[0])"')
$o = powershell -NoProfile -ExecutionPolicy Bypass -File "$d\arr.ps1" -Path a,b
$o
if ($o -eq 'count=1 first=a,b') { 'REPRODUCED' } else { 'NOT REPRODUCED' }

Why it happens

Arguments given with -File are not parsed as PowerShell expressions. The comma makes an array only when you call the script from inside PowerShell.

Fix

Take one string and split it in the script with -split ','.

param([string]$Path)
foreach ($p in ($Path -split ',')) { $p.Trim() }

On the author's machine

count=1 first=a,b

Author's machine: Windows 11 / Windows PowerShell 5.1.26100 / Python 3.13.7 / Claude Code 2.1.304, Japanese Windows (code page 932). Checked 2026-10-20 to 22.

If you searched for

Related

cc-win-kit bundles the parts that avoid these traps from the start: a write guard (with onFailure: block), an unattended runner, a doctor that scans your files and hook settings, CLAUDE.md templates and the full test suite.

cc-win-kit ($19 on Payhip)

Other symptoms