functions powershell subroutine

functions - Cómo definir una subrutina en PowerShell



powershell function parameters (2)

En C #, una subrutina RemoveAllFilesByExtenstion podría ser, por ejemplo, decleard así:

void RemoveAllFilesByExtenstion(string targetFolderPath, string ext) { ... }

y utilizado como:

RemoveAllFilesByExtenstion("C:/Logs/", ".log");

¿Cómo puedo definir y llamar a una subrutina con la misma firma de un archivo de script de PowerShell (ps1)?


Bastante simple de convertir esto a PowerShell:

function RemoveAllFilesByExtenstion([string]$targetFolderPath, [string]$ext) { ... }

Pero la invocación tiene que usar argumentos separados por espacios, pero no requiere comillas a menos que haya un carácter especial de PowerShell en la cadena:

RemoveAllFilesByExtenstion C:/Logs/ .log

OTOH, si la función es indicativa de lo que quiere hacer, esto se puede hacer en PowerShell fácilmente:

Get-ChildItem $targetFolderPath -r -filter $ext | Remove-Item


No hay subrutinas en PowerShell, necesita una función:

function RemoveAllFilesByExtenstion { param( [string]$TargetFolderPath, [string]$ext ) ... code... }

Para invocarlo:

RemoveAllFilesByExtenstion -TargetFolderPath C:/Logs -Ext *.log

Si no activa la función para devolver cualquier valor, asegúrese de capturar los resultados devueltos por los comandos dentro de la función.