gpt4 book ai didi

Powershell:捕获组合输出,仅错误输出,将组合输出发送到控制台

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

我正在创建一个 Powershell 脚本来运行一堆 scala 脚本(我有理由不使用构建工具)。我想以这种方式为所有这些编译生成输出:

  • 只是文件中的编译错误
  • 编译错误和标准输出组合在第二个文件中
  • 标准输出和编译错误也会转到标准输出

  • 我试过 三通 , 2>> ,甚至戳 -OutVariable -错误变量 (后两者似乎只适用于 native Powershell 命令?)。我怀疑 三通 和重定向是某种组合的正确方法,但经过大量搜索后,我似乎无法找到正确的论坛。

    这是我当前的主循环,它只是重定向错误:
    foreach($script in $scripts) {
    Write-Host scala $script
    scala -nocompdaemon $script 2>> _testerrors.txt
    }

    第一行是让观看该过程的人可以看到正在发生的事情(似乎适当的发球/重定向/等会消除这种情况,作为副作用)。

    感谢您的任何帮助/指点;我只是 Powershell 的一个普通用户。

    更新:

    更多的狩猎产生了以下结果:
    foreach($script in $scripts) {
    Write-Host scala $script
    Write-Output "> scala $script" | Out-File ./_testoutput.txt -append
    scala -nocompdaemon $script 2>&1 | tee -Variable testout
    out-file ./_testoutput.txt -InputObject $testout -append
    Write-Output "--------------------" | Out-File ./_testoutput.txt -append
    }

    原来 三通 命令可以将文本发送到文件,但由于某些奇怪的原因,它无法附加到文件。因此,您必须在变量中捕获输出,然后将变量附加到文件中。

    尽管此结果确实解决了我的一些问题,但它仍然不会生成仅包含错误消息的文件。

    最佳答案

    你可以这样做:

    $Error.Clear()
    scala -nocompdaemon $script 2>&1 | Tee -FilePath output.txt -Append
    $Error >> errors.txt

    如果清除全局 $Error首先收集,然后当你执行循环时,它应该只包含由 scala 命令生成的错误。

    关于Powershell:捕获组合输出,仅错误输出,将组合输出发送到控制台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12460018/

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