如何使用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作业运行。我是否需要根据需要从单独的文件中调用该函数?如果您能向我们展示这些函数,肯定会更容易说上述函数只对其中一个函数起作用。我一定是缺少了一些字符,所以第一个函数被跳过了,但第二个函数仍然有效。我会在复习完全部内容后发布我的函数。上面的函数只对其中一个起作用。我一定是缺少了一些字符,所以第一个函数被跳过了,但第二个函数仍然有效。我会在复习完所有内容后发布我的函数。