我有一个批处理文件,它运行ant然后复制其中生成的一个文件:
ant -Dproject.version=1.1.2 release published
copy /Y D:\dir1\MyJar.jar D:\dir2\MyJar.jar
当我运行批处理文件时,ant成功运行,但复制语句从未执行,尽管在ant任务完成后手动输入该语句并按Enter键可以正常工作。这是怎么回事?我有一个批处理文件,它运行ant然后复制其中生成的一个文件:
ant -Dproject.version=1.1.2 release published
copy /Y D:\dir1\MyJar.jar D:\dir2\MyJar.jar
当我运行批处理文件时,ant成功运行,但复制语句从未执行,尽管在ant任务完成后手动输入该语句并按Enter键可以正常工作。这是怎么回事?我曾经遇到过同样的问题,神奇的 call
命令解决了它。
在您的批处理文件中尝试如下:
call ant -Dproject.version=1.1.2 release published
copy /Y D:\dir1\MyJar.jar D:\dir2\MyJar.jar
无法告诉你为什么它有效,我猜这是微软的逻辑。
ant
是批处理文件。如果您从另一个批处理中调用一个批处理,则需要使用call
命令。但是,是的,这有时并不是很清楚。 - Joey当您从另一个批处理文件中调用一个批处理文件时(这通常不太清楚),您应该使用 CALL
(或 call
),否则它会更像 goto
,并且不会返回给调用者。 ant
实际上是批处理文件 ant.bat
吗? 那么这应该可以工作:
CALL ant -Dproject.version=1.1.2 release published