【发布时间】:2012-06-03 14:58:51
【问题描述】:
我有一个执行此操作的控制台应用程序
class Program
{
static void Main(string[] args)
{
Console.WriteLine("out");
Console.Error.WriteLine("err");
Environment.ExitCode = 5;
}
}
当我在 cmd 提示符下运行时,我得到以下信息
C:\>C:\pstools\test\outnerr.exe >C:\pstools\test\out1.log 2>C:\pstools\test\err1.log
C:\>echo %errorlevel%
5
C:\>type C:\pstools\test\out1.log
out
C:\>type C:\pstools\test\err1.log
err
C:\>
这是预期的。
现在如果我在运行窗口中运行它
cmd /c C:\pstools\test\outnerr.exe >C:\pstools\test\out2.log 2>C:\pstools\test\err2.log
这也有效并创建 out2.log 和 err2.log。
现在,如果我使用 psexec 来运行它。我想创建一个日志文件。它是在本地机器还是远程机器上创建都没有关系。 所以我运行这个命令
C:\pstools\test\psexec.exe \\127.0.0.1 cmd /c C:\pstools\test\outnerr.exe >C:\pstools\test\out3.log 2>C:\pstools\test\err3.log
当从运行窗口执行时,这不会创建日志文件。但如果从命令提示符运行,同样有效。
我需要在上面进行哪些更改才能从运行窗口创建日志文件?
PS 我在这里和互联网上阅读了很多关于 PsExec 重定向问题的帖子。我知道 PsExec 操纵流以使远程操作具有交互性这一事实。也许这就是这个简单的事情不起作用的原因。
【问题讨论】:
标签: logging cmd psexec io-redirection