代码之家  ›  专栏  ›  技术社区  ›  user32882

PowerShell调试控制台中的标准输出

  •  1
  • user32882  · 技术社区  · 6 年前

    svn update 产生标准输出的命令和一些编译的可执行文件。当我直接从脚本运行这些命令时,输出将被重定向到中的调试控制台。 Powershell ISE

    谢谢。

    我导入函数如下:

    . "D:\common.ps1"
    

    $MedianValue = Run-Comparison $LastRev $FirstRev $ScriptPath $SolutionPath $DevenvPath $TestPath $refFile $SVNPAth
    

    svn update $FirstRev Start-Process ExecutableName Argument

    当调用上述两个语句的包含函数时,我看不到它们的标准输出。

    1 回复  |  直到 6 年前
        1
  •  1
  •   mklement0    6 年前

    二者都

    ,你不能 将stdout从外部程序传递到主机(例如,ISE中的常规控制台窗口或控制台窗格)

    在源代码处重定向-如果您可以控制被调用方的源代码-您有几个选项,最简单的是 Write-Host

    function Run-Comparison {
      'PS success output'
      cmd /c 'echo external stdout output' | Write-Host
    }
    
    # Captures 'PS success output', but passes the cmd.exe output through to the console.
    $MedianValue = Run-Comparison
    

    上面有选择地发送 cmd.exe

    写入主机 (数字 6 6>$null

    要反转逻辑,请使用 Write-Information $InformationPreference = 'Continue'

    Write-Verbose Write-Debug VERBOSE: DEBUG: