`

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批处理高级教程精选合编

    Windows批处理是一种自动化脚本工具,通过编写一系列命令来执行特定任务。批处理文件通常具有.bat或.cmd扩展名,可以包含各种内部和外部命令,以及批处理编程特有的特殊符号和控制结构。本教程精选了批处理的相关...

    Windows批处理高级教程精选合编.pdf

    ### Windows批处理高级教程知识点概览 #### 一、批处理基础 ##### 1. 常用批处理内部命令简介 - **REM 和 ::**:用于添加注释,其中 `::` 可以放在行首,而 `REM` 需要在其后留空格再写注释内容。 - **ECHO 和 @*...

    Windows 批处理调试器3.0

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

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

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

    windows批处理-基础-循环判断语句使用

    当文件路径中包含空格时,需要使用`usebackq`选项,并将路径用双引号括起来。 ### 小结 本文详细介绍了Windows批处理脚本中常用的循环和判断语句的基本用法及实际应用场景。通过这些控制结构,我们可以编写出更加...

    批处理命令在WINDOWS操作中的典型应用_0

    批处理命令在Windows操作系统中扮演着重要角色,它是一种自动化执行一系列命令的脚本技术,极大地提升了用户的工作效率。批处理文件通常以.bat或.cmd为扩展名,它们由一系列DOS命令组成,这些命令可以是内部命令(如...

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

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

    vc++调用批处理程序

    如果批处理文件需要接收参数,可以在`batchFilePath`中通过空格分隔传递。例如,`"myBatch.bat arg1 arg2"`。 此外,还可以使用其他方式调用批处理文件,比如`system()`函数,它更简单但功能相对较少。`system()`...

    批处理代码(学习用例)

    正确使用引号来包含带空格的路径或文件名。 - **错误处理**:使用`ERRORLEVEL`检查命令执行结果,以便在出错时执行适当的恢复操作。 - **调试技巧**:添加`ECHO ON`和`PAUSE`命令,以便观察脚本执行过程和调试。 ...

    批处理拷贝文件(简单实用)

    在实际应用中,批处理拷贝文件可能会遇到一些问题,如路径中含有空格、特殊字符,或者文件权限限制等。因此,在编写批处理脚本时需要注意这些细节,确保脚本的健壮性。同时,为了防止意外数据丢失,建议在执行批处理...

    Windows下批处理文件(BAT)的参数之编辑符.docx

    1. **文件名提取**:如果需要从命令行传递的文件路径中提取文件名,可以使用 `%~n1` 来获取文件名,而不包含路径或扩展名。 2. **完整路径获取**:如果需要获取一个文件的完整路径,包括驱动器盘符、路径、文件名...

    批处理高级教程.txt

    在Windows系统中,通常使用`.bat`或`.cmd`扩展名的文件来保存这些批处理命令。 - **应用场景**:批处理广泛应用于系统维护、数据备份、文件操作等自动化任务中,能够大大提高工作效率,减少重复劳动。 #### 二、...

    批处理中符号的作用.doc

    12. `"` - 引号用于包含包含空格的路径,也可以在某些命令中表示字符串,例如`"C:\Program Files"`。在`for/f`中,引号表示字符串分析,`"usebackq"`表示分析文件路径。 13. `/` - 功能开关,如`dir /s/b/a-d`中的`...

    BAT批处理脚本-文件相关操作-如何在批处理文件中使用参数.zip

    在批处理文件中,参数是以空格分隔的值,紧跟在命令之后。当运行批处理文件时,这些参数会被自动分配到特殊的变量中,如`%0`、`%1`、`%2`等。其中,`%0`代表批处理文件本身的路径,而`%1`、`%2`等分别代表第一个、第...

    目前为止最全的批处理教程

    批处理是一种在DOS或Windows操作系统中用于自动化执行一系列命令的文本文件,通常以.bat或.cmd为扩展名。本教程全面介绍了批处理的基础知识、常用命令、变量、控制结构以及高级技巧,帮助用户掌握批处理的编写和应用...

    批处理For语句从入门到精通(完整版)

    批处理(Batch Processing)是Windows操作系统中一种自动化执行命令的方式,其文件扩展名为.bat。批处理文件能够通过执行一系列命令,实现对计算机的控制和管理。在批处理中,最重要的命令之一是for语句,它能极大地...

    批处理脚本

    批处理脚本是一种在计算机操作系统中执行一系列命令的文本文件,尤其在Windows系统中广泛使用。批处理脚本(Batch Script)通常以.bat或.cmd为扩展名,它们允许用户通过预定义的指令序列来自动化重复性的任务,提高...

    文件名批处理工具.zip

    在Windows操作系统中,批处理工具是一种非常实用的自动化技术,能够帮助用户批量处理大量文件,例如修改文件名、提取文件名或删除文件名中的特定字符。"文件名批处理工具.zip"是一个压缩包,其中包含了专门用于这类...

    批处理实现新建一和文件同名文件夹并将该文件放到文件夹中

    本文将深入解析如何利用批处理脚本来实现创建与文件同名的文件夹,并将文件移动到该文件夹中的过程,这是一项在数据管理、文件归档以及自动化处理流程中常见的需求。 ### 批处理脚本的核心概念 批处理脚本是基于...

Global site tag (gtag.js) - Google Analytics