gpt4 book ai didi

PowerShell - 输出到变量不起作用

转载 作者:行者123 更新时间:2023-12-03 09:36:16 25 4
gpt4 key购买 nike

我正在编写一个相当冗长的 PowerShell 脚本来执行很多功能。在大多数情况下,一切都进展顺利。

但是,我在脚本的各个级别运行的另一个功能是一个非常详细的日志。我将发布命令行部分作为示例(已简化):

    $Batch = $RunMe[1]
$ResultCode = (Invoke-Expression $Batch -ErrorAction Stop)
$ResultCode

我的预期结果是:

返回代码 0

然后我会记录它。相反,我得到的是:

C:\batchfiles\batchfile.bat 参数

这是我正在使用 Invoke-Expression 执行的命令。

变量的一些快速解释:

$RunMe 是一个存储命令的数组(0 是“Batch”或“Proc”,1 是要运行的命令)

$Batch 是在编写的代码中创建的(这是第一次引用它)

$CurrFileToExec 是当前正在处理的文件(脚本一次在一个文件夹上运行)。我将它用于从 SQL 获取的命令行的字符串替换。

我无法让 $ResultCode 传递命令的正确输出。它只是再次传递命令行函数 ($Batch)。

正如我所说,实际功能部分工作得很好,但我无法将返回代码添加到我的日志文件中。

最佳答案

如果我可以假定 $batch 包含外部可执行文件,则返回代码将在自动变量 $LASTEXITCODE 中 - invoke-expression 的返回包括由外部应用程序写入 STDOUT 和 STDERR 的内容或由外部应用程序写入 powershell 的输出或错误流的内容脚本。如果您调用一个,它将不包含可执行文件的 dos 样式返回代码。

关于PowerShell - 输出到变量不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4167714/

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