在C#中,RemoveAllFilesByExtenstion
子程序可以是,例如,如下所示:
void RemoveAllFilesByExtenstion(string targetFolderPath, string ext)
{
...
}
并使用如下:
RemoveAllFilesByExtenstion("C:\Logs\", ".log");
如何使用PowerShell脚本文件(ps1)中的相同签名来定义和调用子例程?
答案 0 :(得分:29)
将此转换为PowerShell非常简单:
function RemoveAllFilesByExtenstion([string]$targetFolderPath, [string]$ext)
{
...
}
但是调用必须使用空格分隔的args但不需要引号,除非字符串中有PowerShell特殊字符:
RemoveAllFilesByExtenstion C:\Logs\ .log
OTOH,如果该功能表明您想要做什么,可以在PowerShell中轻松完成:
Get-ChildItem $targetFolderPath -r -filter $ext | Remove-Item
答案 1 :(得分:2)
PowerShell中没有子程序,您需要一个函数:
function RemoveAllFilesByExtenstion
{
param(
[string]$TargetFolderPath,
[string]$ext
)
... code...
}
要调用它:
RemoveAllFilesByExtenstion -TargetFolderPath C:\Logs -Ext *.log
如果您没有返回任何值的函数,请确保捕获函数内部命令返回的任何结果。