【发布时间】:2016-11-07 11:13:21
【问题描述】:
在这个论坛上搜索后,我终于找到了下面这两个命令行,我在批处理文件中运行以删除快照视图中的 ClearCase 视图私有目录和文件。
REM First delete view-private directories
for /F "usebackq delims=" %%i in (`cleartool ls -r ^| find /V "Rule:" ^| find /V "hijacked" ^| find /V "eclipsed" ^| find /V "-->"`) do ( if exist "%%~i\" ( rmdir /S /Q "%%i" ) )
REM And then delete view-private files
for /F "usebackq delims=" %%i in (`cleartool ls -r ^| find /V "Rule:" ^| find /V "hijacked" ^| find /V "eclipsed" ^| find /V "-->"`) do ( if not exist "%%~i\" ( del /S /Q /F /A:H "%%i" ) )
但是,我有时会收到这些错误:
找不到 C:\Source\Folder\FileA.log
找不到 C:\Source\Folder\FileB.log
找不到 C:\Source\Folder\SubFolder\FileC.pbl
这些文件是查看私有文件,它们确实存在于提供的位置。但看起来批处理文件无法“看到”删除它们。我做错了什么?
【问题讨论】:
-
如果路径超过 255 个字符?
-
@VonC 不,最长的路径只有 144 个字符。
-
我能想到的都是正确的问题(没有读取权限),或者是一个保留该文件句柄的进程(在完全重启 Windows 后尝试相同的命令)
-
您可以使用 MS/System Internals Process Monitor 工具检测到问题。运行 procmon 跟踪并将过滤器设置为“路径...以 ... c:\Source 开头”并启动您的脚本可能会让您对问题有一些了解。如果您实际上使用的是动态视图,并且使用的是旧的 ClearCase 版本,则需要进行修补,因为 procmon 可能会蓝屏某些旧的 7.1.x、8.0.0 和 (IIRC) 8.0.1.0 和 8.0.1.1 版本.
标签: batch-file clearcase