Windows cmd重定向子命令输出到文件

Windows cmd重定向子命令输出到文件,windows,command-line,cmd,cuda,output-redirect,Windows,Command Line,Cmd,Cuda,Output Redirect,我正在尝试使用cuda memcheck调试应用程序。我想做的是将我的应用程序的输出重定向到一个文件,但另一方面,将cuda memcheck的stdout和stderr重定向到另一个文件。但是我不能让它工作。这: cuda-memcheck "app.exe > stdout1.txt" > memcheck.log 2>&1 什么都不做。但是如果我删除引号内的重定向(忽略我的应用程序输出),它就会执行。所以问题是,如何重定向子命令的stdout?根据您对cuda

我正在尝试使用cuda memcheck调试应用程序。我想做的是将我的应用程序的输出重定向到一个文件,但另一方面,将cuda memcheck的stdout和stderr重定向到另一个文件。但是我不能让它工作。这:

cuda-memcheck "app.exe > stdout1.txt" > memcheck.log 2>&1

什么都不做。但是如果我删除引号内的重定向(忽略我的应用程序输出),它就会执行。所以问题是,如何重定向子命令的stdout?

根据您对
cuda memcheck
行为的评论,您可以使用以下命令

cuda-memcheck --log-file memcheck.log app.exe >app.stdout.txt
编辑

这是我在CentOS上的测试。它可能适用于Win32控制台应用程序,但不适用于Win32应用程序

a、 特写

运行命令:

$ cuda-memcheck --log-file mem.log a >a.stdout.log 2>a.stderr.log
结果文件:

$ cat mem.log 
========= CUDA-MEMCHECK
========= ERROR SUMMARY: 0 errors

$ cat a.stdout.log 
hello world to stdout!

$ cat a.stderr.log 
hello world to stderr!

您是否尝试过
cuda memcheck
的cmd选项
--log file
和/或
--save
?该选项重定向memcheck输出,但不重定向它启动的应用程序的输出。如果仍不工作,“app.stdout.txt”在debug@Jofo请看我的测验。不知道为什么它对你不起作用。@Jofo它在CentOS上起作用。您可能需要在Windows上进行一些更改。我的应用程序的问题是它通常不会将任何内容打印到控制台(它是Win32应用程序,而不是控制台应用程序)。如果我想看到标准输出,我需要在应用程序运行时将其重定向到一个文件中。因此app.exe>>output.txt可以工作,但是如果我在控制台中只键入应用程序名称,我什么也看不到。@Jofo默认情况下,您可能需要修改应用程序的代码以打印到某个文件中。如果无法在控制台中看到输出,则不需要在Win32应用程序中使用printf()。
$ cuda-memcheck --log-file mem.log a >a.stdout.log 2>a.stderr.log
$ cat mem.log 
========= CUDA-MEMCHECK
========= ERROR SUMMARY: 0 errors

$ cat a.stdout.log 
hello world to stdout!

$ cat a.stderr.log 
hello world to stderr!