gpt4 book ai didi

Powershell - 运行外部 powershell 脚本并捕获输出 - 无法传递参数

转载 作者:行者123 更新时间:2023-12-04 01:56:50 25 4
gpt4 key购买 nike

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

最佳答案

我在同事的帮助下解决了这个问题。

我们稍微间接了一点,并包含了一个 cd进入相应的目录,然后运行命令。这就像一个魅力。

解决方案源代码:

Function captureScriptOutput
{
param($fileName, $params)

cd "C:\into\path with\space"
$output = & .\$fileName $params 2>&1 | Out-String
}

这有效,甚至捕获错误输出,我希望其他遇到此类问题的人可以使用它来解决他们的问题。

Cheerioh,感谢您的回复!

关于Powershell - 运行外部 powershell 脚本并捕获输出 - 无法传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25849222/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com