En C #, un sous-programme RemoveAllFilesByExtenstion
pourrait être, par exemple, décliné comme ceci:
void RemoveAllFilesByExtenstion(string targetFolderPath, string ext)
{
...
}
et utilisé comme:
RemoveAllFilesByExtenstion("C:\Logs\", ".log");
Comment définir et appeler un sous-programme avec la même signature à partir d'un fichier de script PowerShell (ps1)?
Assez simple pour convertir cela en PowerShell:
function RemoveAllFilesByExtenstion([string]$targetFolderPath, [string]$ext)
{
...
}
Mais l'invocation doit utiliser des arguments séparés par des espaces mais ne nécessite pas de guillemets sauf s'il y a un caractère spécial PowerShell dans la chaîne:
RemoveAllFilesByExtenstion C:\Logs\ .log
OTOH, si la fonction indique ce que vous voulez faire, cela peut être fait facilement dans PowerShell:
Get-ChildItem $targetFolderPath -r -filter $ext | Remove-Item
Il n'y a pas de sous-programmes dans PowerShell, vous avez besoin d'une fonction:
function RemoveAllFilesByExtenstion
{
param(
[string]$TargetFolderPath,
[string]$ext
)
... code...
}
Pour l'invoquer:
RemoveAllFilesByExtenstion -TargetFolderPath C:\Logs -Ext *.log
Si vous n'avez pas la fonction pour retourner une valeur, assurez-vous de capturer tous les résultats renvoyés par les commandes à l'intérieur de la fonction.