Para cosas como "Qué pasa si", tenemos $ PSCmdlet.ShouldProcess() que nos da el atributo [CmdletBinding]. ¿Existen otras herramientas o prácticas para implementar argumentos de línea de comando comunes como -Verbose, -Debug, -PassThru, etc.?Powershell: ¿cómo implementar switches estándar?
14
A
Respuesta
14
Write-Debug
y Write-Verbose
manejan los parámetros -Debug
y -Verbose
automáticamente.
-PassThru
técnicamente no es un parámetro común, pero puede implementarlo como:
function PassTest {
param(
[switch] $PassThru
)
process {
if($PassThru) {$_}
}
}
1..10|PassTest -PassThru
Y este es un ejemplo del uso valor PassThru de su función en un cmdlet:
function Add-ScriptProperty {
param(
[string] $Name,
[ScriptBlock] $Value,
[switch] $PassThru
)
process{
# Use ":" to explicitly set the value on a switch parameter
$_| Add-Member -MemberType ScriptProperty -Name $Name -Value $Value `
-PassThru:$PassThru
}
}
$calc = Start-Process calc -PassThru|
Add-ScriptProperty -Name SecondsOld `
-Value {((Get-Date)-$this.StartTime).TotalSeconds} -PassThru
sleep 5
$calc.SecondsOld
Tienes un vistazo a Get-Help about_CommonParameters
para más información.
Cuestiones relacionadas
- 1. Implementar PowerShell PSProvider * en * PowerShell
- 2. Redirigir la entrada estándar \ salida en Windows PowerShell
- 3. Implementar vista como burbujas de chat de iPhone estándar ver
- 4. ¿Existe una forma estándar de implementar eventos "Vetoable"?
- 5. ¿Cómo implementar las continuaciones?
- 6. Cómo implementar SAML SSO
- 7. Cómo puedo implementar un conjunto estándar de reglas de detección de hipervínculos en Delphi
- 8. En Clojure, ¿cómo puedo implementar interfaces de recopilación Clojure estándar en mis propios registros y tipos?
- 9. ¿Cómo puedo implementar un montón binario estándar puramente funcional (ocaml o haskell)?
- 10. ¿Cómo puedo desinstalar una aplicación usando PowerShell?
- 11. ¿Cómo implementar paginación en Mongodb?
- 12. ¿Cómo se usa PowerShell?
- 13. Powershell - Cómo cumplimentar/cerrar un archivo zip en powershell
- 14. ¿Cómo detectar la anidación de Powershell dentro de Powershell?
- 15. powershell o msdeploy
- 16. Matriz Biblioteca estándar
- 17. Powershell llamando al script de Powershell
- 18. ¿Cómo puedo gzip estándar en un archivo y también imprimir estándar en estándar?
- 19. Carpeta Ruta del archivo Powershell En Powershell
- 20. ¿Cómo borrar $ Error en PowerShell?
- 21. ¿Cómo ejecutar sqlcmd desde powershell?
- 22. ¿Cómo creo módulos PowerShell 2.0?
- 23. ¿Cómo establecer cultura en PowerShell?
- 24. Cómo dividir líneas en PowerShell?
- 25. ¿Cómo contar objetos en PowerShell?
- 26. Cómo configurar TimeZone usando Powershell
- 27. Cómo generar algo en PowerShell
- 28. Cómo configuro TFS PowerShell Snapin
- 29. Cómo detener IIS con PowerShell?
- 30. ¿Cómo edito XML usando Powershell?
Creo que es posible que desee almacenar la variable de entrada, hacer algo y luego pasar la variable almacenada al final (si $ passthru). – Matt
Sí, 'PassTest' no es una función útil; solo un ejemplo trivial para ilustrar cómo se puede implementar '-PassThru'. Además, también es posible que haga algo con la variable de entrada, pero pase el valor original sin cambios (por ejemplo, '$ _. Kill(); if ($ PassThru) {$ _}'). He agregado un ejemplo no trivial del uso del parámetro PassThru para configurar el PassThru de otro comando. – Rynant