关于bat的重定向的一个问题

SWHITE 2011-12-05 12:20:27
我想在bat中调用一个命令(exe),这个命令会调用其他的命令(exe),但是我不能提前知道会涉及到哪些

能不能把所有输出到屏幕的信息都重定向?如何操作,谢谢!
...全文
215 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
绿领巾童鞋 2011-12-06
  • 打赏
  • 举报
回复
恩,又学到东西了
SWHITE 2011-12-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 sunzongbao2007 的回复:]
引用 1 楼 sandy945 的回复:

什么重定向


说的应该是IO重定向吧 StandardInputRedirect什么的
[/Quote]恩,是IO重定向
铜臂阿铁木 2011-12-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sandy945 的回复:]

什么重定向
[/Quote]

说的应该是IO重定向吧 StandardInputRedirect什么的
阿非 2011-12-05
  • 打赏
  • 举报
回复
什么重定向
SWHITE 2011-12-05
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 sandy945 的回复:]
那你更应该使用输出的方式

a.bat > xxx.bat
[/Quote]能不能说的更具体一点儿呢?

我现在的程序名是A.exe,他可能调用其他的exe(我不能完全知道回调哪些,因为可能是动态决定的)。

十分感谢!
阿非 2011-12-05
  • 打赏
  • 举报
回复
那你更应该使用输出的方式

a.bat > xxx.bat


SWHITE 2011-12-05
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 jimh 的回复:]
一般自己可以自己从定向到临时文件
例如bat里面调用exe

a.bat
b.exe > b.bat
call b.bat

b.bat文件由b.exe文件动态生成
[/Quote]学习了,不过我是不知道A是否会调用B,因为这个A是我下载下来的,不是我写的,A在这个过程中还可能调用C等等。。。这些都不是一定的。
jimh 2011-12-05
  • 打赏
  • 举报
回复
一般自己可以自己从定向到临时文件
例如bat里面调用exe

a.bat
b.exe > b.bat
call b.bat

b.bat文件由b.exe文件动态生成
铜臂阿铁木 2011-12-05
  • 打赏
  • 举报
回复
这么多?

试试这个,写个C
让A调用 C
C将B的输出重定向到C

SWHITE 2011-12-05
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 sunzongbao2007 的回复:]
C# code


Process p = new Process();
ProcessStartInfo info = new ProcessStartInfo();
info.FileName = "ConsoleApplication4.exe"; //你的bat
info.RedirectStandard……
[/Quote]我试过这样的方法了,问题在于我是对A.exe重定向了,A.exe调用了B.exe。B.exe的输出没有办法进行重定向。
铜臂阿铁木 2011-12-05
  • 打赏
  • 举报
回复

Process p = new Process();
ProcessStartInfo info = new ProcessStartInfo();
info.FileName = "ConsoleApplication4.exe"; //你的bat
info.RedirectStandardInput = true;
info.RedirectStandardOutput = true;//这是你要的主要的redirect
info.UseShellExecute = false;//必须false
info.CreateNoWindow = false;

p.StartInfo = info;
p.Start();
p.WaitForExit();//等待与否看你的需求
StreamWriter sw = new StreamWriter("C:\\Redirect.txt");
sw.Write(p.StandardOutput.ReadToEnd());
sw.Close();


这是个例子,没编译,你可以试试,应该会是正常的。
铜臂阿铁木 2011-12-05
  • 打赏
  • 举报
回复

Process p = new Process();
ProcessStartInfo info = new ProcessStartInfo();
info.FileName = "ConsoleApplication4.exe"; //你的bat
info.RedirectStandardInput = true;
info.RedirectStandardOutput = true;//这是你要的主要的redirect
info.UseShellExecute = false;//必须false
info.CreateNoWindow = false;

p.StartInfo = info;
p.Start();
p.WaitForExit();//等待与否看你的需求
StreamWriter sw = new StreamWriter("C:\\Redirect.txt");
sw.Write(p.StandardOutput.ReadToEnd());
sw.Close();


这是个例子,没编译,你可以试试,应该会是正常的。

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧