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

如何使用Powershell根据文件名选择要运行的特定函数?,powershell,Powershell,我有一个功能,可以更改文件名并将其移动到特定的计算机。该函数是为另一台计算机复制的,因此我现在为每个文件名提供了两个特定函数。我似乎不知道如何让脚本选择我希望它使用的函数。以下是我尝试过但运气不佳的方法: $files = dir -Path \\server\PPTV\*\*.* -Include atrium.*, clirel.* -Recurse { (If ($file.FullName -eq "atrium.*" | Rename-Copy-Atrium),

我有一个功能,可以更改文件名并将其移动到特定的计算机。该函数是为另一台计算机复制的,因此我现在为每个文件名提供了两个特定函数。我似乎不知道如何让脚本选择我希望它使用的函数。以下是我尝试过但运气不佳的方法:

$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)))
}

我怎样才能让它通过管道连接到函数并运行?例如,重命名Copy Atrium是函数名之一。

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 
    }
}

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 
    }
}

不如把这些功能整合起来?另外,您发布的代码不是有效的powershell。我想我已经正确设置了它,是站点的新成员,请原谅。这些函数将在重命名文件后移动该文件,然后重新启动该文件发送到的计算机。这可以在一个脚本中完成吗?我将它作为SQL作业运行。我是否需要根据需要从单独的文件中调用函数?如果您可以向我们展示函数show,也许可以合并这些函数,这肯定会更容易说?另外,您发布的代码不是有效的powershell。我想我已经正确设置了它,是站点的新成员,请原谅。这些函数将在重命名文件后移动该文件,然后重新启动该文件发送到的计算机。这可以在一个脚本中完成吗?我将它作为SQL作业运行。我是否需要根据需要从单独的文件中调用该函数?如果您能向我们展示这些函数,肯定会更容易说上述函数只对其中一个函数起作用。我一定是缺少了一些字符,所以第一个函数被跳过了,但第二个函数仍然有效。我会在复习完全部内容后发布我的函数。上面的函数只对其中一个起作用。我一定是缺少了一些字符,所以第一个函数被跳过了,但第二个函数仍然有效。我会在复习完所有内容后发布我的函数。