2010-02-21 179 views
2

我想调用一个脚本,该脚本将数据作为另一个脚本的参数。Powershell:传递输出脚本的参数

ex。

scriptA.ps1 -parameter1(scriptB.ps1 -data 'testOne')

我只是把(),因为我认为这会工作,但似乎无法得到它的工作。有任何想法吗?我试过$()和“”无济于事。

谢谢。

回答

2

如果你想通过scriptB.ps1作为脚本块,然后使用

./scriptA.ps1 -parameter1 {./scriptB.ps1} 

如果要scriptB.ps1的输出传递作为一种类型(即 - 假定scriptB输出型),然后使用

./scriptA.ps1 -parameter1 (./scriptB.ps1) 
+0

使用@Keith Hill的输入,我删除了调用操作符和参数1参数中的“$”。 – dugas 2010-02-22 01:49:09

4

在这种情况下,您很可能在与scripta.ps1相同的目录中有scriptb.ps1。如果没有明确指定路径(绝对或相对路径),PowerShell不会在同一个目录中运行脚本。以下就足以使这项工作:

.\scripta.ps1 -parameter1 (.\scriptB.ps1 -data 'testOne') 
+0

@Keith Hill - 你是绝对正确的,我编辑了我的答案,从参数1参数中删除“$”和调用操作符来反映。 – dugas 2010-02-22 01:47:19

+0

没问题。 PowerShell是一个惊人的深井。我仍然学习有关PowerShell的新东西,自2006年以来我一直是PowerShell MVP。:-) – 2010-02-22 16:20:51