以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 请教cmd 运行,实在搞不懂? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=144455) |
-- 作者:hbhb -- 发布时间:2019/12/20 15:04:00 -- 请教cmd 运行,实在搞不懂? Dim p2 As new Process() p2.StartInfo.FileName = "cmd.exe" p2.StartInfo.UseShellExecute = False \'关闭Shell的使用 p2.StartInfo.RedirectStandardInput = True \'重定向标准输入 p2.StartInfo.RedirectStandardOutput = True \'重定向标准输出 p2.StartInfo.RedirectStandardError = True \'重定向错误输出 p2.StartInfo.CreateNoWindow = True \'设置不显示窗口 p2.Start() p2.StandardInput.WriteLine( "ping > D:\\ping.txt" ) p2.StandardInput.WriteLine("exit") Dim dqzfc As String = FileSys.ReadAllText("D:\\ping.txt", Encoding.Default) Output.Show( dqzfc) 请问为何读取的文件内容不是最新的?非要运行两次? 测试: 1、如果输入p2.StandardInput.WriteLine( "ping1 > D:\\ping.txt" ) 输出文件内容为空 1、如果输入p2.StandardInput.WriteLine( "ping > D:\\ping.txt" ) 输出文件内容有内容 |
-- 作者:有点蓝 -- 发布时间:2019/12/20 15:15:00 -- 文件里是什么内容?怎么样的结果才是正确的? |
-- 作者:hbhb -- 发布时间:2019/12/20 15:38:00 -- 比如:第一步p2.StandardInput.WriteLine( "ping > D:\\ping.txt" ) , 看看Output.Show( dqzfc)的字符 第二步改动一下p2.StandardInput.WriteLine( "ping111 > D:\\ping.txt" ) ,执行后 看看Output.Show( dqzfc)的字符 还是第一步返回的字符,在执行一次代码,返回的字符才与文件内容相同。 也就是说FileSys.ReadAllText("D:\\ping.txt", Encoding.Default)读取的内容与文件内容不同步?
|
-- 作者:有点蓝 -- 发布时间:2019/12/20 15:55:00 -- 等待一下 p2.StandardInput.WriteLine( "ping >> D:\\ping.txt" ) p2.StandardInput.WriteLine("exit") System.Threading.Thread.Sleep(1000) Dim dqzfc As String = FileSys.ReadAllText("D:\\ping.txt", Encoding.Default) Output.Show( dqzfc) |
-- 作者:hbhb -- 发布时间:2019/12/20 16:18:00 -- 谢谢!一般等待多长时间?以上这些帮助中为什么不写? |
-- 作者:有点蓝 -- 发布时间:2019/12/20 16:23:00 -- 多长时间请自行测试。 |