我在从另一个 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
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11065 次 |
最近记录: |