Board logo

标题: 批处理如何在cmd中启动的程序下输入指令? [打印本页]

作者: THEJIE.ORG    时间: 2012-2-27 18:51     标题: 批处理如何在cmd中启动的程序下输入指令?

比如:
C:\>diskpart
DISKPART>help
DISKPART>exit
C:\>exit
这个要写成批处理的话应该怎么写呢?
a.bat:
diskpart
help
exit
exit
这样根本不行啊……
作者: find    时间: 2012-2-27 19:29

http://www.bathome.net/thread-5579-1-1.html
http://www.bathome.net/thread-12907-1-1.html
http://www.bathome.net/thread-14470-1-1.html
作者: CrLf    时间: 2012-2-28 03:44

本帖最后由 CrLf 于 2012-2-28 03:50 编辑

diskpart 是一个有内部命令的命令,同时不支持命令行参数传递命令,所以要想使用 diskpart 的内部命令,有三种途径:
  1. 手工输入
  2. 将内容写入缓冲区再传递给它,比如来自进程的管道或者来自文件的重定向
  3. 使用 diskpart 脚本
复制代码
第一种办法就不说了,手工输入就失去批处理的存在意义了

第二种办法中的管道比较常用,好处是简单有效,缺点是拖速度,比如:
  1. @echo off
  2. more +3 %0|diskpart
  3. pause&exit
  4. help
  5. list
  6. rem 也可以echo help^&echo list|diskpart 用一句话搞定
复制代码
也可以用第三种办法,好处是灵活而且相对高效,而且在某些情况下甚至不需要临时文件,直接将批处理脚本自身当作 diskpart 脚本来运行即可:
  1. diskpart /s %0
复制代码

作者: THEJIE.ORG    时间: 2012-2-28 19:09

回复 3# CrLf
多谢~看来我要去学学管道了




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2