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)