如何使用Powershell基于文件名选择要运行的特定函数?

时间:2016-02-05 13:43:34

标签: powershell

我有一个更改文件名并将其移动到特定计算机的功能。该功能是为另一台计算机复制的,所以我现在每个文件名都有两个特定的功能。我似乎无法弄清楚如何让脚本选择我想要它使用的功能。这是我尝试过没有运气的事情:

$files = dir -Path \\server\PPTV\*\*.* -Include atrium.*, clirel.* -Recurse {        
    (If ($file.FullName -eq "atrium.*" | Rename-Copy-Atrium), 
    (If ($file.FullName -eq "clirel.*" | Rename-Copy-Clirel)))
}

如何才能将其传递给函数并运行?例如,Rename-Copy-Atrium是函数名称之一。

1 个答案:

答案 0 :(得分:0)

powershell中if()语句的正确语法是:

if([condition])
{
    [execute this code]
}

所以你想做类似的事情:

$files = dir -Path \\server\PPTV\*\*.* -Include atrium.*, clirel.* -Recurse 

foreach($file in $files)
{
    if($file.FullName -like "atrium.*") 
    {
        # I assume the function takes a fileinfo object as a parameter argument
        Rename-Copy-Atrium $file 
    }
    elseif($file.FullName -like "clirel.*")
    {
        Rename-Copy-Clirel $file 
    }
}