true switch script receive parameter mandatory define powershell parameter-passing

switch - Método de llamada powershell con argumentos opcionales



powershell script define parameters (2)

Me dirigí a esto creando métodos de sobrecarga que llaman al método central con el valor que quiero. por ejemplo, quiero que el usuario pueda especificar el número de registros procesados ​​o llamar al método "Incremento" y luego simplemente llamar a "WriteProgress" sin ningún argumento:

class UserFeedback { [string]$Name [int]$ThingCount [datetime]$ProcessStartDateTime [int]$ProcessedCount UserFeedback ([string] $Name,[int]$ThingCount){ $this.ProcessStartDateTime = Get-Date $this.Name = $Name $this.ThingCount = $ThingCount $this.ProcessedCount = 0 } WriteProgress([int] $intProcessed){ $this.ProcessStartDateTime $SecondsElapsed = ((Get-Date) - $this.ProcessStartDateTime).TotalSeconds $SecondsRemaining = ($SecondsElapsed / ($intProcessed / $this.ThingCount)) - $SecondsElapsed Write-Progress -Activity $this.Name -PercentComplete (($intProcessed/$($this.ThingCount)) * 100) -CurrentOperation "$("{0:N2}" -f ((($intProcessed/$($this.ThingCount)) * 100),2))% Complete" -SecondsRemaining $SecondsRemaining } WriteProgress(){ $this.WriteProgress($this.ProcessedCount) } Increment(){ $this.ProcessedCount ++ }

}

Tengo un código de excel vba que encuentra una celda en particular en una hoja. Utiliza el método Find las bibliotecas de Excel. Aquí está el código

objRange.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows)

Necesito hacer lo mismo en PowerShell. Pero este método tiene un total de 9 argumentos. Cómo ignorar los otros argumentos opcionales en powershell. ¿Algo como esto?

$range.Find("*", "", "", "", $xlByRows, $xlPrevious, "", "", "")

Aquí está la documentación de Range.Find Method


$null no funciona, pero de acuerdo con esta respuesta puede usar [Type]::Missing :

$default = [Type]::Missing $xl.Cells.Find("*", $default, $default, $default, $xlByRows, $xlPrevious, $default, $default, $default)