如何将windbg命令重定向到文件,而不在windbg控制台上回显输出?

如何将windbg命令重定向到文件,而不在windbg控制台上回显输出?,windbg,Windbg,.logopen不是答案,因为它允许命令输出到windbg控制台 例如,!sosex.dumpgen 2生成大量输出,我不希望在调试器控制台中看到这些输出。现在,我正在使用以下工具: .shell -i- -ci "!dumpgen 2" cmd /c more > D:\tmp\dumpgen2.log 我的问题是more命令是交互式的,在输出一定数量的数据后需要用户输入。这对我来说是个大问题 一种解决方案是使用脚本以非交互方式运行调试器本身,并在那里使用.logopen命令 我想知道

.logopen
不是答案,因为它允许命令输出到windbg控制台

例如,
!sosex.dumpgen 2
生成大量输出,我不希望在调试器控制台中看到这些输出。现在,我正在使用以下工具:

.shell -i- -ci "!dumpgen 2" cmd /c more > D:\tmp\dumpgen2.log
我的问题是
more
命令是交互式的,在输出一定数量的数据后需要用户输入。这对我来说是个大问题

一种解决方案是使用脚本以非交互方式运行调试器本身,并在那里使用.logopen命令

我想知道我是否能实现我想要的,同时:

  • 从交互式WinDbg会话执行此操作
  • 使用普通的标准shell命令(也可以是cmd.exe或powershell.exe)。我知道编写一个只将stdin转发给stdout的小实用程序是一件微不足道的工作,但我还是不喜欢这样做

  • ^
    将找到任何行的开头,因此它应该是1:1的副本。

    您也可以使用gnuwin32 cat

    C:\>dir /b foogg.txt   
    File Not Found
    
    C:>cdb-C.shell-ci\'lm\'o\'C:\\foogg.txt\'cat-“calc.exe

    0:000> cdb: Reading initial command '.shell -ci "lm" -o "c:\\\\foogg.txt" cat -'
    
    <.shell waiting 10 second(s) for process>
    .shell: Process exited
    0:000> q
    quit:
    
    0:000> cdb: Reading initial command '.shell -ci "lm" -o "c:\\\\foogg.txt" cat -'
    
    <.shell waiting 10 second(s) for process>
    .shell: Process exited
    0:000> q
    quit:
    
    C:\>dir /b foogg.txt
    foogg.txt
    
    C:\>cat foogg.txt
    
    start    end        module name
    01000000 0101f000   calc       (deferred)
    77c10000 77c68000   msvcrt     (deferred)
    77dd0000 77e6b000   ADVAPI32   (deferred)
    77e70000 77f02000   RPCRT4     (deferred)
    77f10000 77f59000   GDI32      (deferred)
    77f60000 77fd6000   SHLWAPI    (deferred)
    77fe0000 77ff1000   Secur32    (deferred)
    7c800000 7c8f6000   kernel32   (deferred)
    7c900000 7c9b2000   ntdll      (pdb symbols)
    7c9c0000 7d1d7000   SHELL32    (deferred)
    7e410000 7e4a1000   USER32     (deferred)