【问题标题】:Check ClearCase version existence in VBA检查 VBA 中是否存在 ClearCase 版本
【发布时间】: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

标签: vba clearcase


【解决方案1】:

我试图不必依赖Err object,即不要使用遇到不存在的版本(例如get 或descr)时失败的cleartool 命令。

正是你应该依赖的,除非你有限制(比如每秒测试数千个元素,或其他性能瓶颈)

cleartool describe 可以应用于extended pathname,如果不存在则会失败。

作为commented by Brian Cowan,您可以检查Excel VBA 是否可以从ClearCase Automation Library (CAL) 调用命令。
我有used CAL in VB Script before

【讨论】:

  • RIght:我想在运行描述之前确保特定版本存在!有趣的是(在不使用错误处理程序的情况下检查特定版本的存在)可以在 DOS Batch 而不是 VBA 中完成。我想我别无选择,只能使用 Err 对象。
  • @Jozef 我明白了。但是在这里,describe 用于检查它是否存在,如果存在,则对其进行描述。
  • 如果您使用的是 32 位 Excel,您可能需要查看 ClearCase 自动化库 (CAL)。 “doc”是 C:\Program Files (x86)\IBM\RationalSDLC\ClearCase\bin 中的 cc_cal.chm 文件...不幸的是,这意味着您需要安装帮助文件查看器。
  • @VonC 我也在这些脚本中使用 CAL(我通过 cleartool 对象传递大多数命令。)我只是想防止 cleartool descr 命令在特定版本不存在时生成错误.由于显然没有办法做到这一点,我原来的问题得到了回答。我检查 Err.Number 的值以查看是否存在版本,如果不存在则不再退出脚本。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-27
  • 2012-05-10
  • 2012-09-20
  • 2021-07-08
  • 2013-11-07
  • 1970-01-01
相关资源
最近更新 更多