Powershell: аргументы/параметры не заполняются

У меня есть сценарий PowerShell:

param (
    [Parameter(Mandatory=$true)][string]$input,
    [Parameter(Mandatory=$true)][string]$table
)

Write-Host "Args:" $Args.Length
Get-Content $input |
    % { [Regex]::Replace($_, ",(?!NULL)([^,]*[^\d,]+[^,]*)", ",'`$1'") } |
    % { [Regex]::Replace($_, ".+", "INSERT INTO $table VALUES (`$1)") }

Часть Write-Hostпредназначена для отладки.
Я запускаю его как .\csvtosql.ps1 mycsv.csv dbo.MyTable(из оболочки powershell) и получаю

Args: 0
Get-Content : Cannot bind argument to parameter 'Path' because it is an empty s
tring.
At C:\temp\csvtosql.ps1:7 char:12
+ Get-Content <<<<  $input |
    + CategoryInfo          : InvalidData: (:) [Get-Content], ParameterBinding
   ValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationErrorEmptyStringNotAl
   lowed,Microsoft.PowerShell.Commands.GetContentCommand

. Я получаю точно такую ​​же ошибку с любыми параметрами, которые я передаю, а также ту же ошибку, если Я пытаюсь использовать именованные параметры.

Что может привести к тому, что параметры не будут переданы?

ОБНОВЛЕНИЕ : PowerShell ISE запрашивает эти параметры с помощью подсказок графического интерфейса, а затем выдает ту же ошибку о том, что они не переданы.

6
задан Andrey Shchekin 13 June 2012 в 07:09
поделиться