我的一个Excel VBA脚本遍历特定ClearCase元素的所有版本,以查看它是否已合并。当使用 rmver 删除特定版本时,这会失败(建议不要使用破坏性删除,但我们会在极少数情况下采用此方法让开发人员摆脱依赖关系)。
在DOS中,以下功能完美:
IF EXIST M:\View\LAMI\build.xml@@\main\lc_adhoc_dev\3 ECHO Yes
Yes
要在VBA中执行此操作,我尝试使用Dir方法检查是否存在特定版本:
Dim elementVersion As String
elementVersion = "M:\View\LAMI\build.xml@@\main\lc_adhoc_dev\3"
If Len(Dir(elementVersion)) > 0 Then
' Version exists
Else
' Version does not exist
End If
但是,这会导致“错误的文件名或编号”错误:
我还尝试了fso对象的FileExists方法:
Dim elementVersion As String
elementVersion = "M:\View\LAMI\build.xml@@\main\lc_adhoc_dev\3"
Dim fsoObj As Object
Set fsoObj = CreateObject("Scripting.FileSystemObject")
If fsoObj.FileExists(elementVersion) = True Then
' Version exists
Else
' Version does not exist
End If
但是,该调用始终返回False。看来所有这些方法都存在ClearCase MVFS虚拟M:驱动器的问题。还有什么我可以尝试的吗?
答案 0 :(得分:1)
我尝试不必依赖
Err
object,即不使用在遇到不存在的版本(例如get或descr)时失败的cleartool
命令。
这是正是你应该依赖的东西,除非你有约束(比如每秒测试数千个元素,或其他性能瓶颈)
cleartool describe
可以应用于extended pathname,如果不存在则会失败。
commented作为Brian Cowan,您可以检查Excel VBA是否可以调用ClearCase Automation Library (CAL)中的命令。
我有used CAL in VB Script before。