我在另一个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
}