Viz.
ABC.ps1 has this
param(
[bool]$A= $False,
[bool]$B= $False,
[bool]$C= $False
)
$count=$Args.Count
Write-Host "$count"
If I call it as:
.\ABC.ps1 $True $True $True
It should display 3.
This is just a guess, but $Args.Count is always zero, possibly because it Args doesn’t hold/count named arguments.
The number of named parameters can be gotten from $psboundparameters
$arg will indeed contain only the unbound parameters.