`

程序中调用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  
对我有帮助,就要感谢!

相关推荐

    java调用winrar生成压缩文件路径有空格问题

    ### Java调用WinRAR生成压缩文件路径有空格问题解决方案 在进行文件处理时,我们经常需要对文件进行压缩操作以便于传输或者节省存储空间。Java作为一种常用的开发语言,在进行此类操作时通常会通过调用外部命令的...

    CMD命令速查手册(详细带参数说明全)

    本文将根据提供的部分CMD命令,详细介绍其功能与使用方法。 #### 二、具体命令解析 ##### 1. ASSOC - **功能**:显示或修改文件扩展名关联。 - **语法**: - `ASSOC [.ext[=fileType]]` - **参数说明**: - `....

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

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

    Delphi7如何打开和关闭Exe并带参数

    首先,让我们讨论如何在Delphi 7中打开一个带有参数的EXE程序。这可以通过使用`ShellExecute`函数来完成,它属于`ShlObj`单元。以下是一个简单的示例: ```delphi uses ShlObj; procedure OpenExeWithParams...

    bat批处理命令大全

    Call命令可以指定带有.bat或.cmd扩展名的批处理文件名,并可选地传递参数。其语法为“call [drive:][path]filename [batchparameters]”。 7. Start命令:Start命令用于从批处理文件中调用外部程序或者DOS命令。它...

    Dos命令大全

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

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

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

    cmd基础教程.doc

    9. **""**:字符串界定符,用于包含带空格的参数。 10. **, ; ( )**:分隔符和括号,用于参数分隔和逻辑结构。 11. **!**:在ENABLEDELAYEDEXPANSION下,用于批处理中的变量延迟扩展。 **FOR** 命令详解: FOR命令...

    大量批处理实用程序例程

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

    java调用7zip解压压缩包的实例

    Java调用7zip解压压缩包实例的知识点主要包括了Java程序如何借助系统命令行调用外部程序7zip来执行压缩包解压操作的详细步骤,涉及到的命令行参数的使用,以及在操作过程中可能遇到的问题及其解决方法。接下来,我将...

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

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

    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 求最大公约数...

    解决bat文件名、目录名或卷标语法不正确

    标题中的“解决bat文件名、目录名或卷标语法不正确”是指在Windows操作系统中,当你尝试运行一个批处理(BAT)文件或者访问某个目录时,如果遇到“文件名、目录名或卷标语法不正确”的错误,这通常意味着文件路径、...

    C#中实现一次执行多条带GO的sql语句实例

    首先,我们来看`ExecuteSqlWithGo`方法,这个方法通过正则表达式将带有`GO`的SQL语句分割成多个单独的SQL命令。`Regex.Split(sql.Trim(), "\r\n\\s*go", RegexOptions.IgnoreCase)`这一行代码将字符串按`\r\n`(换行...

Global site tag (gtag.js) - Google Analytics