zoukankan      html  css  js  c++  java
  • 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批处理中对带空格路径的处理 - BaNg - BlogJava



  • 相关阅读:
    Tomcat安装与配置
    模板方法模式
    观察者模式
    访问者模式
    策略模式
    迭代器模式
    状态模式
    访问者模式
    备忘录模式
    解释器模式
  • 原文地址:https://www.cnblogs.com/Henrya2/p/1359465.html
Copyright © 2011-2022 走看看