java程序执行系统cmd的命令

gaolch 2006-08-21 01:44:31
try {
Process pro = null;
Runtime rt = Runtime.getRuntime();
for(int i = 0; i < strfl.length; i++){
pro = rt.exec("cmd /c start copy d:\\" + strfl[i] + " d:\\new\\"+strfl[i]");
}


代码如上,如果strfl.length等于100的话,那么将打开100个cmd窗口!吓人哪!要是10000的话那就机器都爆了!
请问这个问题要如何解决?
...全文
1046 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
high_land 2006-08-24
  • 打赏
  • 举报
回复
打错了 是dos窗口
high_land 2006-08-24
  • 打赏
  • 举报
回复
String[] strfl = { "dir", "dir /w" };
Process pro = null;
Runtime rt = Runtime.getRuntime();
for (int i = 0; i < strfl.length; i++) {
try {
1--- //pro = rt.exec("cmd /c start "+ strfl[i]);
2--- pro = rt.exec("cmd "+ strfl[i]);
} catch (IOException e) {
e.printStackTrace();
}
}
第一个好用 但是开了两个 doc 窗口
第二个不好用?
怎么在一个窗口执行两个命令 ?
后在关闭doc窗口?
XiXiangHou 2006-08-24
  • 打赏
  • 举报
回复
同意 EdmundBull 的解法。
COPY 文件问题,自己书写程序也非常简单。
EdmundBull 2006-08-24
  • 打赏
  • 举报
回复
把要执行的命令写到批处理文件,然后执行批处理文件,应该可以解决你的问题。但是性能嘛,楼主自己衡量了。
  • 打赏
  • 举报
回复
在cmd下输入start就会另外打开一个窗口的,你循环了100次当然就打开100个了
开不太明白什么意思,把start去掉应该没问题
donggua12345678 2006-08-23
  • 打赏
  • 举报
回复
帮顶了
setve 2006-08-23
  • 打赏
  • 举报
回复
你的这个str是个字符串是吗?
怎么通过字符串的长度来做为循环条件呢?
不理解!
zhmt 2006-08-23
  • 打赏
  • 举报
回复
路过,友情up...
lulu123ma 2006-08-21
  • 打赏
  • 举报
回复
mark
千里冰封820 2006-08-21
  • 打赏
  • 举报
回复
并不定会开一个窗口,而是看你怎么调用了
goodsheep929 2006-08-21
  • 打赏
  • 举报
回复
("cmd /c start copy d:\\" + strfl[i] + " d:\\new\\"+strfl[i]"

你把"start"去掉应该就可以了
gaolch 2006-08-21
  • 打赏
  • 举报
回复
你每exec一下就会新开一个窗口的
=======================
就是要解决这个问题。
gaolch 2006-08-21
  • 打赏
  • 举报
回复
在循环外执行啊
----------------------------

循环外执行?是什么意思?
我现在就是要循环执行很多条语句啊。只不过如果能只开一个cmd窗口,或者每次执行后把当前窗口关了的话,这样就可以了。
haode 2006-08-21
  • 打赏
  • 举报
回复
你每exec一下就会新开一个窗口的
凋零的老树 2006-08-21
  • 打赏
  • 举报
回复
在循环外执行啊

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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