2

我有一个批处理文件,它首先创建另一个包含 ClearCase cleartool 命令的批处理文件,然后运行它:

ECHO cleartool lsactivity -long "%ACTIVITY%"^>"%OUTPUTFILE%">FILETORUN.bat
CALL FILETORUN.bat

运行批处理时,FILETORUN.bat会以正确的格式生成,但CALL它会被完全忽略。

如果我在日志文件ECHO之后输出CALL,我可以看到脚本只是跳过它。

会是什么呢?

我试过删除CALL,但没有任何区别。

编辑:解决方案

谢谢大家的意见。我发现了问题。在脚本中写入批处理和批处理调用之前,有一个命令可以将信息从文件中读取到变量中:

SET /p FILETODELETE=<rmname_%CLEARCASE_USER%.tmp

它只读取第一行。由于某种原因,这与临时批处理文件产生了冲突,我不知道为什么。我使用不同的解决方案从文件中读取第一行,并且不再发生冲突:

(set FILETODELETE=)
for /f "delims=" %%q in (rmname_%CLEARCASE_USER%.tmp) do if not defined FILETODELETE set FILETODELETE=%%q

如果有人能提供一些启示,那就太好了!

4

1 回答 1

0

SET /P 等待用户输入,因此它实际上会使用您之后尝试执行的内容完成命令并消耗输入缓冲区,这可能会在每台机器上产生不同的结果。有关详细信息,请参阅set 命令参考

于 2013-06-24T07:39:23.873 回答