在CMD批量触发器脚本中,我使用cleartool
命令将活动信息写入文件:
cleartool lsactivity -long %CLEARCASE_ACTIVITY%>>C:\folder\activityinfo.txt
这几乎每次都有效,但偶尔因为我不知道的原因,cleartool命令没有正确地将信息写入文件,导致我无法删除的0KB输出文件。更重要的是,它会阻止触发器在连续尝试中正常运行。
我编写了一些代码,用于检查输出文件的大小是否为0KB,但是这不起作用,因为即使没有写入文件,cleartool命令也会保持文件处于打开状态。太奇怪了!
经过几个小时后,触发器再次起作用,因为我假设锁定的进程解锁。
有没有办法避免这种现象?
此致
安德鲁
答案 0 :(得分:1)
我所看到的是为cleartool lsactivity
的每次出现写入不同的文件,并在完成整个过程后将这些文件合并为一个文件。
例如,一种技术是在文件名中使用日期,例如" Batch command date and time in file name"。
set hr=%time:~0,2%
if "%hr:~0,1%" equ " " set hr=0%hr:~1,1%
cleartool lsactivity -long %CLEARCASE_ACTIVITY% > C:\folder\activityinfo_%date:~-4,4%%date:~-10,2%%date:~-7,2%_%hr%%time:~3,2%%time:~6,2%.txt
请注意,我只使用' >
'而不是' >>
',因为文件' activityinfo_YYYYMMDD_HH:MM:SS
& #39;每个cleartool调用总是不同的。
我已将
cleartool lsactivity
命令设置为使用'>
'来写入(或覆盖)文件。而不是'>>
' (附加)。此外,由于系统中有时会出现打嗝,因此我会在命令后设置5秒的睡眠,以防万一写入和创建文件有延迟
从comments below开始,还建议在脚本的开头添加睡眠:
我在剧本开头添加了20秒的初始睡眠,但我还没有遇到任何问题。