Powershell - 在目录中的所有ps1文件上运行ps1脚本

时间:2016-09-10 20:34:52

标签: powershell

我在本地服务器目录上有大约50个ps1脚本 - E:/ scripts /。它们具有不同的功能,用于收集服务器/应用程序统计信息等。

已更新,可添加有关脚本的更多信息 还有第二个ps1脚本 - a.ps1,我试图使用PowerShell运行它。这个a.ps1有一个定义的函数 - fn-run - 并且在执行Import-Module a.ps1之后,它使用以下语法:

fn-run <stats collector script name> servername domainname
for example:
fn-run E:/scripts/script1.ps1 myserver localdomain

我可以使用PowerShell收集脚本文件列表,如下所示:

$i = 0    
$allscripts = Get-ChildItem E:/scripts/ | where {$_.extension -eq ".ps1"} | % {
         Write-Host $_.FullName
    }

foreach ($script in $allscripts) {
    $script,
    $i++
    }

这提供了E:/ scripts /目录中的完整脚本文件列表。现在,我想弄清楚如何将这些传递给 a.ps1 ..?

谢谢..

1 个答案:

答案 0 :(得分:1)

这是你想要做的吗?

Import-Module a.ps1

$allscripts = Get-ChildItem -Path  E:/scripts/ -Filter "*.ps1" | Select-Object -ExpandProperty FullName

foreach ($script in $allscripts) {
    fn-run $script myserver localdomain
}