获得文件的路径中,存在空格如何处理?

jiaohuimin 2008-01-13 02:58:26
需要获得某路径下的文件,
提示 能到C:Program\;找不到文件, 看了网上的处理方法,好像没有解决的!急!
Process child3 = Runtime.getRuntime().exec(
"cmd.exe /c start C:\\Program Files\\Tencent\\QQ\\start.bat");


第二个迷茫,批处理文件的执行上述格式有错吗?因为目前执行不了,判定不了!请经验大家指教!
...全文
992 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiaohuimin 2008-01-13
  • 打赏
  • 举报
回复
好的,非常感谢!今天学习了不少!感谢大家关注帖子!
over!
老紫竹 2008-01-13
  • 打赏
  • 举报
回复
你可以让当前线程强制终止,那个dos窗口也许就停下来了!

还有批处理调用批处理,最好用 call 命令

OVER 不讨论了。哈哈!
jiaohuimin 2008-01-13
  • 打赏
  • 举报
回复
老紫竹 教会我启动了 批处理文件!

期待dos窗口的完美解决!
jiaohuimin 2008-01-13
  • 打赏
  • 举报
回复
哈哈!其实,普罗已经解决了这个问题,我直接启动了!

但是就是想知道如果是批处理文件该怎么执行,
现在看来启动批处理文件执行之后,windows下的DOS就会一直开启了吗?!

难道没有别的方法可以让它dispose?仍在期待解决!
老紫竹 2008-01-13
  • 打赏
  • 举报
回复
哈哈!谁让你的程序启动的那么麻烦,直接启动
"C:\Program Files\HolAgent\Tencent\QQ.imk"
不就行了
KK3K2005 2008-01-13
  • 打赏
  • 举报
回复
这样写
("cmd.exe /c \"C:\\Program Files\\Tencent\\QQ\\start.bat\"");
jiaohuimin 2008-01-13
  • 打赏
  • 举报
回复
启动成功,哈哈!
但是又出现了一个问题,启动之后,DOS窗口一直存在,不会消失了!一直在等待下一个命令输入
老紫竹 2008-01-13
  • 打赏
  • 举报
回复
批处理中也有空格

start "" "C:\Program   Files\HolAgent\Tencent\QQ.imk"


哈哈!也一样括起来啊!,前面也加上"" 用来显示标题

start 命令之后首先是[title],再是[filepath],所以将title设置为 " "

这句话在我给你的文档里面,你没注意看哦!关键是把那个[title]给废掉,用空就可以了。
jiaohuimin 2008-01-13
  • 打赏
  • 举报
回复
我确认存在,又试了一下,还是同样的提示,
应该是批处理文件的原因吧,
文件如下
start C:\Program Files\HolAgent\Tencent\QQ.imk

批处理中也有空格
老紫竹 2008-01-13
  • 打赏
  • 举报
回复
"cmd.exe /c start \"\" \"C:\\Program Files\\Tencent\\QQ\\start.bat\""


这个命令在我这里没有问题,你确认你的
C:\\Program Files\\Tencent\\QQ\\start.bat
这个文件真的存在吗?
老紫竹 2008-01-13
  • 打赏
  • 举报
回复
"cmd.exe \"\" /c start \"C:\\Program Files\\Tencent\\QQ\\start.bat\""


或者
"cmd.exe /c start \"\" \"C:\\Program Files\\Tencent\\QQ\\start.bat\""


这2个都不行吗?
jiaohuimin 2008-01-13
  • 打赏
  • 举报
回复
老紫竹的exec内容依然打不开我的这个文件,提示相同
系统找不到C:\\Programe
现在能不能确定是找不到批处理文件中的路径呢?
jiaohuimin 2008-01-13
  • 打赏
  • 举报
回复
刚才又试了一下,普罗说的方法改成别的格式的文件是可行的,但是对于我的这个批处理文件还是不可行,
所以想着是不是这个批处理文件不能这样编写?那这个文件怎么改写呢?

老紫竹的帖子很全面,阅读中,但是没有涉及我的这个批处理处理形式的问题,其他的应该都可行!
梅小西Echo 2008-01-13
  • 打赏
  • 举报
回复
你确定你按我的方法改了吗,为什么我的可以啊
我在

public static void main(String[] args) throws IOException {
Process child3 = Runtime.getRuntime().exec(
"cmd.exe /c start C:\\\"Program Files\"\\e.txt");

}


执行之后就打开了e.txt
jiaohuimin 2008-01-13
  • 打赏
  • 举报
回复
难道这里指的是:批处理文件里边文件系统找不到?
批处理文件如下:
start C:\Program Files\Tencent\\QQ\\QQ.imk

这里我用QQ只是一个例子。
老紫竹 2008-01-13
  • 打赏
  • 举报
回复
这里搜索也能找到类似的帖子
我也收藏了一个
http://www.java2000.net/viewthread.jsp?tid=293
老紫竹 2008-01-13
  • 打赏
  • 举报
回复
字符串用双引号引起来
前面加上2个双引号和一个空格
"cmd.exe /c start \"\" \"C:\\Program Files\\Tencent\\QQ\\start.bat\""
jiaohuimin 2008-01-13
  • 打赏
  • 举报
回复
还是不行啊,提示 系统找不到文件C:\program
梅小西Echo 2008-01-13
  • 打赏
  • 举报
回复
 ("cmd.exe   /c   start   C:\\\"Program   Files\"\\Tencent\\QQ\\start.bat");   

62,623

社区成员

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

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