我有一个Windows批处理脚本,用于构建模块,该脚本反过来使用ClearCase clearmake
命令来驱动实际的编译、目录创建和文件操作,即处理Makefile内容。当使用DOS窗口或从"cmd/c…"命令行调用时,批处理脚本可以完美地工作。多年来一直是这样。
我最近决定将脚本移到Ant上。出于简单性考虑,第一步是使用Exec任务(使用cmd /c
)简单地调用脚本,而不做更改。Ant在创建目录时几乎立即失败。错误消息报告如下:
mkdir: Cannot create the directory C:\fred\harry\joe
我能够使用DOS命令提示符验证mkdir C:\fred\harry\joe
命令是否正常工作,因此,据我所知,Ant生成的双反斜杠路径分隔符与clearmake
固有的内容和/或Makefile中的内容相结合是导致失败的原因。
我正在寻找的回应大致如下:"是的,clearmake
肯定是罪魁祸首,因为……"或"如果你在Ant中摆弄这个或那个东西,只会生成一个反斜杠……"。如果没有简单快速的解释,我会深入研究这个问题,以确定到底是什么导致了失败。
谢谢,
我看到过类似的错误:
- 动态视图(对于所有权来说比C:\上的快照视图更明智,这是您的情况)
- 资源句柄冲突(脚本试图更新已被另一个进程占用的资源,而您的脚本不应该是这种情况,因为它在Ant Exec任务之外工作)
- 错误消息(就像您创建了一个已经存在的目录:在经典脚本中,错误会被忽略,而它可能会中断ant任务
虽然最后一个原因是一个很好的候选者,但首先尝试简化脚本(例如,只保留mkdir
),以检查这一行是否确实是问题所在(而不是"这一行与之前发生的其他操作一起")