需求描述

通过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 时路径包含空格的问题的更多相关文章

  1. IDEA 开发环境中设置Subversion,遇到svn安装路径包含空格无法使用版本控制的解决办法

    假如你的svn.exe的安装位置是:C:\Program Files\TortoiseSVN\bin\svn.exe,路径中包含空格. 1.File->Settings->Version ...

  2. [转]Windows中的命令行提示符里的Start命令执行路径包含空格时的问题

    转自:http://www.x2009.net/articles/windows-command-line-prompt-start-path-space.html 当使用Windows 中的命令行提 ...

  3. 转:Windows中的命令行提示符里的Start命令执行路径包含空格时的问题

    转自:http://www.x2009.net/articles/windows-command-line-prompt-start-path-space.html 当使用Windows 中的命令行提 ...

  4. error PRJ0003 : 生成“cmd.exe”时出错 2010-01-19 22:26

    今天用vs2005编译时代码时竟然出现了error PRJ0003 : 生成“cmd.exe”时出错这样的错误,这不是刺激我吗,我们先看msdn的解释吧. 错误消息 生成“command line”时 ...

  5. visual 2008中error PRJ0003 : 生成 cmd.exe 时出错

    visual 2008中error PRJ0003 : 生成 cmd.exe 时出错”,   和vs2008 sp1没关系 解决方案:工具—>选项—>项目和解决方案—>VC++目录, ...

  6. Atitit.执行cli cmd的原理与调试

    Atitit.执行cli cmd的原理与调试 1. /c  与/k1 2. /k  参数,有利于调试1 3. -------code2 4. 打开程序后与openner脱离关系3 5. 返回参数 St ...

  7. 痞子衡嵌入式:忘掉cmd.exe吧!选用优雅的控制台终端(ConsoleZ)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是一款优雅的替换cmd的命令行终端ConsoleZ. 1.使用cmd的烦恼 嵌入式开发经常会用到命令行工具,Windows系统自带的com ...

  8. 忘掉cmd.exe吧!选用优雅的控制台终端(ConsoleZ)

    1.使用cmd的烦恼 嵌入式开发经常会用到命令行工具,Windows系统自带的command line工具(cmd.exe)的简陋程度不用说大家都深有体会.使用cmd.exe有如下几个主要的烦恼: 没 ...

  9. C#程序调用cmd.exe执行命令

    代码部分 using System.Diagnostics; public class CmdHelper { private static string CmdPath = @"C:\Wi ...

随机推荐

  1. 限流之令牌桶算法——RateLimiter官方文档

    原文链接 作者:Dimitris Andreou  译者:魏嘉鹏 校对:方腾飞 RateLimiter 从概念上来讲,速率限制器会在可配置的速率下分配许可证.如果必要的话,每个acquire() 会阻 ...

  2. 【ACM非算法部分】读入优化

    今天做了ACdream的比赛才知道原来还有读入优化这一说.Orz 读入一个整数的时候这么写: int a; scanf("%d",&a); 和 int a; char c; ...

  3. 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 ...

  4. ActiveMQ之ActiveMQ-CPP安装及测试

    在介绍ActiveMQ-CP之前,先介绍下CMS(C++ Messaging Service),CMS是C++程序与消息中间件进行通信的一种标准接口,可以通过CMS接口与类似ActiveMQ这样的消息 ...

  5. 【LeetCode】汇总

    此贴为汇总贴 673. Number of Longest Increasing Subsequence 075. Sort Colors 009. Palindrome Number 008. St ...

  6. Django: TemplateDoesNotExist (rest_framework/api.html)

    需要在站点前面的INSTALLED_APP里面加上rest_framework

  7. IDEA生成serialVersionUID的警告

    默认情况下Intellij IDEA是关闭了继承了java.io.Serializable的类生成serialVersionUID的警告.如果需要ide提示生成serialVersionUID,那么需 ...

  8. Collections排序

    0.前言 ThreeSet的底层实现是红黑树,它在创建set的过程中实现排序.Collections.sort是在对整个集合进行排序,按道理来说使用TreeSet插入集合元素直至建立整个TreeSet ...

  9. C51 一个非常有用的位操作 --- 其中一位置 0 其它位不变

    C51 一个非常有用的位操作 --- 其中一位置 0 其它不变 C51 中经常操作位,以下方法就非常方便,来自 1 s &= ~(1 << j) /* 将变量s的第j位置成0,其余 ...

  10. 前端mvc mvp mvvm 架构介绍(vue重构项目一)

    首先 我们为什么重构这个项目 1:我们现有的技术是前后台不分离,页面上采用esayUI+jq构成的单页面,每个所谓的单页面都是从后台胜场的唯一Id 与前端绑定,即使你找到了那个页面元素,也找不到所在的 ...