Search code examples
powershellsubroutine

How to define a subroutine in PowerShell


In C# a RemoveAllFilesByExtenstion subroutine could be, for example, decleard like this:

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

and used like:

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

How can I defne and call a subroutine with the same signature from a PowerShell script file (ps1)?


Solution

  • Pretty simple to convert this to PowerShell:

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

    But the invocation has to use space separated args but doesn't require quotes unless there's a PowerShell special character in the string:

    RemoveAllFilesByExtenstion C:\Logs\ .log
    

    OTOH, if the function is indicative of what you want to do, this can be done in PowerShell easily:

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