【发布时间】:2017-09-06 23:12:50
【问题描述】:
我的一个 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: 驱动器有关。还有什么我可以尝试的吗?
【问题讨论】:
-
我会在几个小时后发布答案,但请查看
cleartool get(stackoverflow.com/a/5381646/6309):如果您可以获取旧版本并将其复制到您的 C:\ 驱动器,那么该版本存在。如果cleartool get失败...版本不存在。 -
cleartool get 仅适用于文件。我也需要检查不存在的目录版本(我更新了我的问题:将“文件”更改为“元素”)。还有,
-
另外,我试图不必依赖 Err 对象,即不使用遇到不存在版本(例如 get 或 descr)时失败的 cleartool 命令。跨度>
-
我正要建议描述 ;)
-
在你的情况下,你应该依赖 err