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.