Tengo un script de PowerShell:PowerShell: Args/params no está poblada
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)") }
El Write-Host part
es para la depuración.
lo ejecuto como .\csvtosql.ps1 mycsv.csv dbo.MyTable
(de cáscara de PowerShell), y obtener
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
me sale exactamente el mismo error con los parámetros que los que paso, también el mismo error si trato de utilizar parámetros con nombre.
¿Qué puede hacer que los parámetros no se pasen?
ACTUALIZACIÓN:. PowerShell ISE me pide estos parámetros utilizando indicaciones GUI, luego me da el mismo error de ellos no se pasa en
Ok, '$ args' donde solo para depurar sake, pero tienes razón, no funcionan de todos modos, según las respuestas de los demás. –
Ahora que el '$ input' es especial es el motivo de mi problema. ¡Muchas gracias! –