检查VBA中是否存在ClearCase版本

时间:2017-04-11 13:56:56

标签: vba clearcase

我的一个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:驱动器的问题。还有什么我可以尝试的吗?

1 个答案:

答案 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