`

程序中调用cmd命令时,参数带有空格的解决方法

阅读更多

    比如在程序中调用cmd命令打开一个文件,而文件路径带有空格,如果直接把路径传给cmd,那么cmd就会把路径空格前面的部分当做是一个参数,空格后当做另一个参数,导致程序出错,解决方法是把传入的参数前后添加双引号。以java为例:

 

解决方法:

p = Runtime.getRuntime().exec(
					"cmd /c start "+"\""+"\" "+"\"" +"%cd%/tool/ba t/Start DB.bat"+ "\"");

 

		public static Process StartOracle() {
		Process p = null;
		try {
			p = Runtime.getRuntime().exec(
					"cmd /c start "+"\""+"\" "+"\"" +"%cd%/tool/ba t/Start DB.bat"+ "\"");

			InputStream i = p.getInputStream();
			int c;
			while ((c = i.read()) != -1) {
				System.out.println((char) c);
			}
			i.close();
			p.waitFor();

		} catch (Exception e) {
			e.printStackTrace();
		}
		return p;

	}
分享到:
评论
2 楼 louis_cuti 2010-11-04  
你说的这个方法我尝试了下~~没实现,不知道是我哪里写错了,还是怎么了。。。
而且你的"\""+"\" "+"\"",为什么不直接写成"\"\"\""?效果是一样的吧,只是为了好区分?
我认为比较好的一种实现方法是:
String filePath=file.getPath;//要打开的文件路径名,可以包含空格。
String cmdStr[]={"cmd","/c","start"," ",filePath};
Runtime.getRuntime.exec(cmdStr);
cmd命令不能识别带空格的路径,就是因为是以空格来划分参数的吧?
共同学习。。。
1 楼 chian_xxp 2010-08-11  
对我有帮助,就要感谢!

相关推荐

    cmd操作命令和linux命令大全收集

    CMD命令:开始->运行->键入cmd或command(在命令行里可以看到系统版本、文件系统版本) 命令大全 1. gpedit.msc-----组策略 2. sndrec32-------录音机 3. Nslookup-------IP地址侦测器 ,是一个 监测网络中 DNS...

    Dos命令大全

    对于带有空格的文件 名,您需要用双引号将文件名括起来。为了用这种方式来使 用双引号,您还需要使用 usebackq 选项,否则,双引号会 被理解成是用作定义某个要分析的字符串的。 %i 专门在 for 语句中得到说明,%j ...

    精易官方免费模块v3.60版

    因为该命令调用很多的子程序,涉及代码太多,维护时间耗时2天多,也因此拖慢了3.51的发布 故决定,先发布3.51版本,本命令可能隐藏的BUG,我们继续研究,看能否找出真正的问题所在 精易模块 V3.50 what’s new:...

    大量批处理实用程序例程

    检测光驱中是否有盘.cmd 添加环境变量.cmd 解析ipconfig命令输出通用函数.cmd 调用系统气泡.cmd 通过inf重启电脑.cmd C盘转换为NTFS格式.cmd dos下重启.bat guest.bat win2000关机命令.bat WIN2003 IIS最小权限分配....

    如何编写批处理文件批处理文件批处理文件

    在命令提示下键入批处理文件的名称,或者双击该批处理文件,系统就会调用Cmd.exe按照该文件中各个命令出现的顺序来逐个运行它们。使用批处理文件(也被称为批处理程序或脚本),可以简化日常或重复性任务。当然我们...

    入门学习Linux常用必会60个命令实例详解doc/txt

    该命令包括了将带有当前工作目录当作该光盘中的目录的终端窗口。 chsh 1.作用 chsh命令的作用是更改使用者shell设定,它的使用权限是所有使用者。 2.格式 chsh [ -s ] [ -list] [ --help ] [ -v ] [ ...

    grub4dos-V0.4.6a-2017-02-04更新

    更新说明: 2017-02-04(yaya) Ls command: Empty Folder returns false. ...解决当命令行长度过长或批处理的参数过多时导致的内存冲突问题. 2013-03-19 1.新增连续命令分隔符";;",无阻碍顺序执行. 例子: set a...

    700个批处理打包下载.rar

    检测光驱中是否有盘.cmd 模拟2K开机进度条.bat 模拟2K开机进度条.cmd 模拟黑客帝国数码雨.bat 每6行拼接为一行.cmd 比较两个文件夹下文件名的异同.cmd 水仙花数算法.cmd 求一列数所有不同组合的和.cmd 求最大公约数...

    精易模块[源码] V5.15

    9、改善“网页_访问”中最后一个参数(代理地址)为“”符号时无法访问网页,感谢易友【z00544】反馈。 精易模块 V3.82 what’s new:(20140816) 1、修复“时间_取现行时间戳”有时不能正常返回13位时间戳,当...

    精易编程助手3.3+精易模块v6.3.1

    3、优化“程序_加入右键菜单”,“系统_关联右键菜单带图标”命令 感谢【jr21066】反馈; 4、优化“音乐_播放”只能播放一次的BUG。感谢【不想说话的树】反馈; 四、其他更新 1、移除“类_线程池1”,“类_数据操作...

    网管教程 从入门到精通软件篇.txt

    可在命令提示符下使用带有不同参数的 bootcfg 命令。  用法:  bootcfg /default 设置默认引导项。  bootcfg /add 向引导列表中添加 Windows 安装。  bootcfg /rebuild 重复全部 Windows 安装过程并允许...

Global site tag (gtag.js) - Google Analytics