Ant 执行 exec cmd.exe 时路径包含空格的问题
需求描述
通过Ant脚本调用bat脚本
问题描述
bat脚本所在目录名称包含空格(space),cmd.exe调用时候报错The system cannot find the path specified.
解决方法
修改exec传参arg的写法,把<arg line="/c ${dir}/test.bat"> 改成 <arg value="xxxx"> 这种形式(row 6)。
出错原因
1. Ant调用cmd.exe时,传入的脚本路径必须是绝对路径,所以不能使用basedir来解决
2. <arg line="xxx">这种写法会检查传值xxx中的空格,并以空格为分隔符来解析参数
测试代码
<?xml version="1.0" ?>
<project name="testExec" default="test" basedir="../">
<property name="dir" value="d:\\too ls"/>
<target name="test">
<exec executable="cmd.exe">
<arg value="/c"/>
<arg value="${dir}/test.bat"/>
</exec>
</target>
</project>
Ref: http://ant.1045680.n5.nabble.com/Setting-Property-to-a-path-containing-Space-td1355559.html
Ant 执行 exec cmd.exe 时路径包含空格的问题的更多相关文章
- IDEA 开发环境中设置Subversion,遇到svn安装路径包含空格无法使用版本控制的解决办法
假如你的svn.exe的安装位置是:C:\Program Files\TortoiseSVN\bin\svn.exe,路径中包含空格. 1.File->Settings->Version ...
- [转]Windows中的命令行提示符里的Start命令执行路径包含空格时的问题
转自:http://www.x2009.net/articles/windows-command-line-prompt-start-path-space.html 当使用Windows 中的命令行提 ...
- 转:Windows中的命令行提示符里的Start命令执行路径包含空格时的问题
转自:http://www.x2009.net/articles/windows-command-line-prompt-start-path-space.html 当使用Windows 中的命令行提 ...
- error PRJ0003 : 生成“cmd.exe”时出错 2010-01-19 22:26
今天用vs2005编译时代码时竟然出现了error PRJ0003 : 生成“cmd.exe”时出错这样的错误,这不是刺激我吗,我们先看msdn的解释吧. 错误消息 生成“command line”时 ...
- visual 2008中error PRJ0003 : 生成 cmd.exe 时出错
visual 2008中error PRJ0003 : 生成 cmd.exe 时出错”, 和vs2008 sp1没关系 解决方案:工具—>选项—>项目和解决方案—>VC++目录, ...
- Atitit.执行cli cmd的原理与调试
Atitit.执行cli cmd的原理与调试 1. /c 与/k1 2. /k 参数,有利于调试1 3. -------code2 4. 打开程序后与openner脱离关系3 5. 返回参数 St ...
- 痞子衡嵌入式:忘掉cmd.exe吧!选用优雅的控制台终端(ConsoleZ)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是一款优雅的替换cmd的命令行终端ConsoleZ. 1.使用cmd的烦恼 嵌入式开发经常会用到命令行工具,Windows系统自带的com ...
- 忘掉cmd.exe吧!选用优雅的控制台终端(ConsoleZ)
1.使用cmd的烦恼 嵌入式开发经常会用到命令行工具,Windows系统自带的command line工具(cmd.exe)的简陋程度不用说大家都深有体会.使用cmd.exe有如下几个主要的烦恼: 没 ...
- C#程序调用cmd.exe执行命令
代码部分 using System.Diagnostics; public class CmdHelper { private static string CmdPath = @"C:\Wi ...
随机推荐
- 限流之令牌桶算法——RateLimiter官方文档
原文链接 作者:Dimitris Andreou 译者:魏嘉鹏 校对:方腾飞 RateLimiter 从概念上来讲,速率限制器会在可配置的速率下分配许可证.如果必要的话,每个acquire() 会阻 ...
- 【ACM非算法部分】读入优化
今天做了ACdream的比赛才知道原来还有读入优化这一说.Orz 读入一个整数的时候这么写: int a; scanf("%d",&a); 和 int a; char c; ...
- CodeForces - 963D:Frequency of String (bitset暴力搞)
You are given a string ss. You should answer nn queries. The ii-th query consists of integer kiki an ...
- ActiveMQ之ActiveMQ-CPP安装及测试
在介绍ActiveMQ-CP之前,先介绍下CMS(C++ Messaging Service),CMS是C++程序与消息中间件进行通信的一种标准接口,可以通过CMS接口与类似ActiveMQ这样的消息 ...
- 【LeetCode】汇总
此贴为汇总贴 673. Number of Longest Increasing Subsequence 075. Sort Colors 009. Palindrome Number 008. St ...
- Django: TemplateDoesNotExist (rest_framework/api.html)
需要在站点前面的INSTALLED_APP里面加上rest_framework
- IDEA生成serialVersionUID的警告
默认情况下Intellij IDEA是关闭了继承了java.io.Serializable的类生成serialVersionUID的警告.如果需要ide提示生成serialVersionUID,那么需 ...
- Collections排序
0.前言 ThreeSet的底层实现是红黑树,它在创建set的过程中实现排序.Collections.sort是在对整个集合进行排序,按道理来说使用TreeSet插入集合元素直至建立整个TreeSet ...
- C51 一个非常有用的位操作 --- 其中一位置 0 其它位不变
C51 一个非常有用的位操作 --- 其中一位置 0 其它不变 C51 中经常操作位,以下方法就非常方便,来自 1 s &= ~(1 << j) /* 将变量s的第j位置成0,其余 ...
- 前端mvc mvp mvvm 架构介绍(vue重构项目一)
首先 我们为什么重构这个项目 1:我们现有的技术是前后台不分离,页面上采用esayUI+jq构成的单页面,每个所谓的单页面都是从后台胜场的唯一Id 与前端绑定,即使你找到了那个页面元素,也找不到所在的 ...