`

windows批处理中对带空格路径的处理

阅读更多

一般在Windows的软件大部分安装在c:\ Program Files下面,比如我机器上的Java位置就是C:\Program Files\Java\jdk1.5.0_12,假如如果你在批处理中调用java或者javaw,会这么写:

set JAVA_HOME=C:\Program Files\Java\jdk1.5.0_12
set EXE_JAVA=%JAVA_HOME%\bin\java
%EXE_JAVA% -version

那样会报告一个错误:
'C:\Program' 不是内部或外部命令,也不是可运行的程序
或批处理文件。


以前为了避免这种问题,会把把JDK挪到c:\,但不是一个通用的解决办法,现在可以采用两种方式来解决:

1 加上引号,表示一个完整路径,这个在好多服务器批处理中常用到比如jboss,  tomcat。
set JAVA_HOME=C:\Program Files\Java\jdk1.5.0_12
set EXE_JAVA="%JAVA_HOME%" \bin\java
%EXE_JAVA% -version

2 转成短路径,这个我认为是最好的解决办法。
set JAVA_HOME=C:\Program Files\Java\jdk1.5.0_12
for %x in ("%JAVA_HOME%") do set JAVA_HOME=%~sx
set EXE_JAVA=%JAVA_HOME%\bin\java
%EXE_JAVA% -version

需要注意的是,在批处理文件比如 run.bat 中,上面的for语句的变量有两个%% 号。
for %%x in ("%JAVA_HOME%") do set JAVA_HOME=%%~sx

另:如果只是想得到固定带空格 的短路径,有一个快捷方法,使用cmd定位到某个目录,输入 debug 启动x86虚模式调试,然后quit推出,那么cmd的路径就变成短路径了,如下图

分享到:
评论

相关推荐

    Windows 批处理调试器3.0

    .bdc文件是JSON文本格式,可以用任何一个文本阅读器打开,不过推荐你在Windows批处理调试器中编辑,以免出错。 添加批处理文件 通过打开文件按钮或者拖拽方式打开批处理文件,就可以把批处理文件添加到当前工程。...

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

    简明批处理教程22009年10月20日 星期二 下午 05:35 最近对于批处理技术的探讨比较热,也有不少好的批处理程序发布,但是如果没有一定的相关知识恐怕不容易看懂和理解这些批处理文件,也就更谈不上自己动手编写了,古...

    dump 和 hotcopy 自动备份 SVN 的批处理

    (1)留意批处理 dump_all 和 hotcopy_all 中的三个路径,分别是安装目录、库目录、备份目录,这三个目录都支持路径中含有空格 (2)改写上面三个路径的时候,不要在路径前后添加引号 (3)将系统的时间格式,稍作...

    700个批处理打包下载.rar

    获取路径中指定层深的字符串.cmd 虚拟磁盘连接断开控制.bat 被锁定帐户.bat 解析ipconfig命令输出通用函数.cmd 解锁注册表.BAT 计算2的N次方.cmd 计算字符串长度.cmd 计算开方.cmd 计算正浮点数的和.cmd 计算花费的...

    大量批处理实用程序例程

    本资源由大量的实用批处理文件组成,删除.txt尾缀名双击即可直接使用,既是学习的模板也可以作为实用程序,如下为文件组成,涉及文件管理,系统,网络,小工具等等: ...获取路径中指定层深的字符串.cmd

    bat批处理文件实现复制、删除、创建文件夹、执行程序、打开文件

    [注意]:不论是程序或文件路径中含有空格,都必须用引号括起来: start d:\TheWorld\TheWorld.EXE "e:\My documents\我有一个恋爱.htm" 所有程序中的引号不能是全角的,必须用半角的格式,所以输入引号前最好关闭...

    精通windows server 2008 命令行与powershell 电子书PDF单文件完整版

    精通windows server 2008 命令行与powershell 电子书PDF单文件完整版 内容简介: 本书全面地介绍了Windows Server 2008命令行、PowerShell和脚本的使用,包括...10.4.5 ]sysy[ ]sysy[——允许在字符串中包含空格 473...

    精通windows server 2008 命令行与powershell电子书PDF版(第一卷)

    Windows Server 2008系统内置功能强大的命令,可在命令行模式下完成所有可在Windows界面下执行的操作,尤其在执行脚本、批处理等操作时,更加方便快捷. 以实践为主,突出实用性、针对性和技术性.. 列举大量实例,...

    Windows下实现MySQL自动备份的批处理(复制目录或mysqldump备份)

    今天有个需求要在 Windows 下实现数据库自动备份...备份放置的路径,加 \ set BACKUP_PATH=D:\Backup\ :: 要备份的数据库名称,多个用空格分隔 set DATABASES=database1 database2 database3 :: MySQL 用户名 set USER

    精通windows server 2008 命令行与powershell电子书PDF版(第三卷)

    Windows Server 2008系统内置功能强大的命令,可在命令行模式下完成所有可在Windows界面下执行的操作,尤其在执行脚本、批处理等操作时,更加方便快捷. 以实践为主,突出实用性、针对性和技术性.. 列举大量实例,...

    精通windows server 2008 命令行与powershell 电子书PDF版(第四卷)

    Windows Server 2008系统内置功能强大的命令,可在命令行模式下完成所有可在Windows界面下执行的操作,尤其在执行脚本、批处理等操作时,更加方便快捷. 以实践为主,突出实用性、针对性和技术性.. 列举大量实例,...

    《计算机应用基础》辅导资料三.doc

    基本概念:批处理系统、分时系统、实时操作系统、分布式操作系统、网络操作 系统、嵌入式操作系统、Shift+空格、Ctrl+Shift、Ctrl+空格、文件系统、文件、文件 夹、路径。 一、操作系统概述 1.操作系统概念 操作系统...

    精通windows server 2008 命令行与powershell电子书PDF版(第二卷)

    Windows Server 2008系统内置功能强大的命令,可在命令行模式下完成所有可在Windows界面下执行的操作,尤其在执行脚本、批处理等操作时,更加方便快捷. 以实践为主,突出实用性、针对性和技术性.. 列举大量实例,...

    SendTo+

    本软件是用批处理制作的实用小工具,安装后会给“发送到”增加一些实用的特性,如:复制文件路径名、批量重命名、快速打开目录、剪贴板文字保存到文件等等。功能的实现是由20多个批处理脚本完成的,批处理有很强的可...

    IP(GHOST)自动修改工具 支持win7

    白名单=C:\WINDOWS\system32\internat.exe|C:\WINDOWS\system32\cmd.exe //以 | 将路径分开 [保护设置] 用户名=administrator // 所使用的登陆用户 密码= // 登陆用户的密码 路径参数= // RecoverSetup.exe /...

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

    1.skip_to()函数修改,对于引号里面的”\”使用以前的方法处理,保持兼容性。(chenall) 2.add variable @boot,add debug info。(chenall) 3.two variables boot_drive and install_partition can be preset to a ...

    中文简体压缩软件RAR 6.0

    这个命令将从当前路径中的 RAR 压缩文件解压所有的 *.asm 文件: rar e '*.rar' '*.asm' 命令可以是下列中的任何一个: a 添加文件到压缩文件中。 例子: 创建或更新已存在的压缩文件 myarch,...

    Dos命令大全

    表示不显示@后面的命令,在入侵过程中(例如使用批处理来格式化敌人的硬盘)自然不能让对方看到你使用的命令啦。 Sample:@echo off @echo Now initializing the program,please wait a minite... @format X: /q/u/...

    代码语法错误分析工具pclint8.0

    和前面第一步中的方法基本一样,不过这里我们需要用到unix中的find等命令来查找当前目录下的C和C++文件,然后再将它们送给lint程序处理,所以得先从http://www.weihenstephan.de/~syring/win32/UnxUtils.zip下载...

    rar压缩软件.rar

    在 Windows 中,这个文件应该放在 RAR 所在的或 %APPDATA%\WinRAR 目录中, 在 Unix 中- 放在用户的 home 目录或在 /etc 中。 提高压缩率和操作速度的提示: - 在压缩文件中,小文件应该被组织在一起; - 频繁被...

Global site tag (gtag.js) - Google Analytics