¿Powershell tiene reglas extrañas de equilibrio de paréntesis / corchetes?
Mi PowerShell actúa de manera muy extraña cuando intento hacer una función. Para demostrarlo, aquí hay una función básica que, no sé, calcula la fórmula cuadrática:
1 function Get-Quadratic {
2
3 [CmdletBinding()]
4
5 param (
6 [Parameter(Position = 0, Mandatory = $true)]
7 [int32]$a,
8 [Parameter(Position = 1, Mandatory = $true)]
9 [int32]$b,
10 [Parameter(Position = 2, Mandatory = $true)]
11 [int32]$c
12 )
13
14 Write-Output $a + " " + $b + " " + $c
15 }
Y si intentas cargar esto con . .\quadratic.ps1
, obtienes:
At C:\Users\(yo)\Desktop\Cur\playground\quadratic.ps1:7 char:11
+ [int32]$a
+ ~
Falta el ')' en la lista de parámetros de la función.
At C:\Users\(yo)\Desktop\Cur\playground\quadratic.ps1:1 char:24
+ function Get-Quadratic {
+ ~
Falta el '}' de cierre en el bloque de declaraciones o definición de tipo.
At C:\Users\(yo)\Desktop\Cur\playground\quadratic.ps1:12 char:1
+ )
+ ~
Símbolo inesperado ')' en la expresión o declaración.
At C:\Users\(yo)\Desktop\Cur\playground\quadratic.ps1:15 char:1
+ }
+ ~
Símbolo inesperado '}' en la expresión o declaración.
+ CategoryInfo : ParserError: (:) [], ParseException
+ FullyQualifiedErrorId : MissingEndParenthesisInFunctionParameterList
He seguido tutoriales hasta el más mínimo detalle al intentar hacer funciones, pero mi PowerShell parece no gustarle ni siquiera los comandos más básicos. Si ayuda, mi versión es:
Major Minor Build Revision
5 1 19041 1320
davy.ai
Parece que hay algunos errores de sintaxis en el código de la función.
En primer lugar, en la lista de parámetros en las líneas 6-11, debería haber una coma que separe cada parámetro. Por ejemplo, la línea 7 debería ser:
En segundo lugar, falta un paréntesis de cierre en la línea 13. Debería ser:
En tercer lugar, parece haber un problema de formato con las comillas alrededor del espacio en la instrucción
Write-Output
. Aparecen como"
en lugar de solo"
.Intenta corregir estos problemas y ver si la función se carga correctamente sin errores.