找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 24589|回复: 5

[代码合集] DOS命令在C#中怎么调用

[复制链接]
发表于 2011-6-22 16:13:40 | 显示全部楼层 |阅读模式
p.StartInfo.FileName = "cmd.exe";
            p.StartInfo.UseShellExecute = false;
            p.StartInfo.RedirectStandardInput = true;
            p.StartInfo.RedirectStandardOutput = true;
            p.StartInfo.CreateNoWindow = false;
            p.Start();
            p.StandardInput.WriteLine("start explorer");//这个括号里该怎么写命令?我发现好多命令都执行不了啊
            p.StandardInput.WriteLine("exit");
            string s = p.StandardOutput.ReadToEnd();
            p.Close();

评分

参与人数 1PB -2 收起 理由
zm900612 -2 超过一行的代码请用code框起来

查看全部评分

发表于 2011-6-22 16:44:37 | 显示全部楼层
内部命令要用cmd解释执行。
加个cmd /c就行了,
  1. p.StandardInput.WriteLine("cmd /c start explorer");
复制代码

或者不要使用内部命令
  1. p.StandardInput.WriteLine("explorer");
复制代码
 楼主| 发表于 2011-6-23 17:53:28 | 显示全部楼层
2# zm900612
是这样写吗?比如写一个dir e:\的命令,设为显示cmd窗体,我发现还是不显示任何内容啊
发表于 2011-6-23 18:19:57 | 显示全部楼层
pause也是内部命令啊...
而且把命令分开来写,他们已经不是作用于同一个cmd中了的吧,试试这样:
  1. p.StandardInput.WriteLine("cmd /c start explorer&pause");
复制代码
 楼主| 发表于 2011-6-24 23:30:30 | 显示全部楼层
4# zm900612

这样会弹出两个空窗口 = = 本想做一个打开软件和强制关软件的快捷方式的,就像桌面的图标一样,每点一个按钮就执行一句命令,但发现taskkill start+路径 等都会报错,至今没找到c#里dos命令怎么写。
不过也无所谓了,已经学会调用批处理文件了。但为每个按钮都写一个批处理太繁琐了= =
发表于 2011-6-25 12:09:04 | 显示全部楼层
不太清楚
不过写到一个批处理中可以用函数的形式呀:

  1. ::在 C# 中使用“1.bat explorer”调用
  2. goto :%1

  3. :explorer
  4. start explorer
  5. pause
  6. exit

  7. :dir
  8. dir /b e:\
  9. pause
  10. exit
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 16:46 , Processed in 0.019397 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表