【发布时间】:2014-09-15 13:28:14
【问题描述】:
我在另一个 powershell 脚本中运行 powershell 脚本、传递参数和捕获输出时遇到问题。我尝试使用 & 号运算符,通过 powershell.exe -Command 调用它,但似乎没有任何效果。
似乎可行的是使用存储在像这样C:\path\to\script.ps1 -arg1 $value这样的变量中的固定参数和值。
如果没有其他方法,这可能会提供解决方案,但我想运行类似于 & $pathToScript $params 2>&1 的命令(2>&1 用于捕获错误输出以及标准)。
有时构造只打印脚本的路径,
有时它会说Cannot run file in the middle of pipeline,而
有时它会抱怨它找不到提到的脚本文件(我的路径中有时会有空格,但我认为引用它就足够了:引用是这样完成的$path = "`"C:\path\with space\to\script.ps1`"")。
这是我想在其中使用的简化函数:
Function captureScriptOutput
{
#the function receives the script path and parameters
param($path, $params)
#this works if no params are passed, but I need params!
$output = & $path $params 2>&1 | Out-String
}
【问题讨论】:
-
一切都有多疯狂?
-
现在编辑了我的问题,感谢您的指示。
标签: powershell ampersand