引用:
原帖由 tuohz 于 2006-9-14 14:46 发表
怎么样将已在视图下的大量目录结构复杂的私有文件批量地递归地加到库里呢?
若使用clearcasefsimport的话,该命令是使视图外的文件通过本地视图加到库的啊!我始终没有找到好的办法,大家支个招啊!
你的需求还是可以实现的,用批处理!感谢前面cindy给出了答案原型,我来完善一下:
1.cindy中给出的命令是:
动态视图中将私有文件全部加入CC的命令
for /f "delims==," %v in ('cleartool lsprivate -other -short') do cleartool mkelem -nc -mkpath -ci "%v"
静态视图中将私有文件全部加入CC的命令
for /f "delims==," %v in ('cleartool ls -view_only -r -short') do cleartool mkelem -nc -mkpath -ci "%v"
经我测试,如果用批处理来实现,变量%v的定义应该为%%V;
2.for 用来对一组文件中的每一个文件执行某个特定命令。
命令语法为:FOR %variable IN (set) DO command [command-parameters]
上面参数/f 通过每个文件的每一行中分开的第一个空白符号。跳过空白行。
delims=xxx - 指分隔符集。这个替换了空格和跳格键的默认分隔符集。
%variable 指定一个单一字母可替换的参数,在批处理文件中使用 FOR 命令时,指定变量请使用 %%variable
而不要用%variable,所以上面用%%V来保存lsprivate输出结果;第二个“%%V”作为mkelem的输入参数
对于for的help描述,感兴趣的朋友可以ms-dos下用for /?来输出帮助。
3.我的测试环境:winxp,cc 7.0,动态view, vob名为vob1,映射视图路径为Z:\vob1>,
建立记事本文件add_elem.txt;存入内容for /f "delims==," %%v in ('cleartool lsprivate -other -short') do
cleartool mkelem -nc -mkpath -ci "%%v",然后另存为add_elem.cmd;然后直接加入版本控制,存放于
Z:\vob1>,
4.命令执行:Z:\vob1>add_elem.cmd;输出结果如下:
Z:\vob1>for /F "delims==," %v in ('cleartool lsprivate -other -short') do cleart
ool mkelem -nc -mkpath -ci "%v"
Z:\vob1>cleartool mkelem -nc -mkpath -ci "\vob1\2007\testbat.txt"
Checking out parent directory "\vob1\2007".
Created element "\vob1\2007\testbat.txt" (type "text_file").
Checked in "\vob1\2007\testbat.txt" version "\main\1".
Checked in "\vob1\2007" version "\main\3".
Z:\vob1>cleartool mkelem -nc -mkpath -ci "\vob1\add_elem.cmd.bak"
Checking out parent directory "\vob1".
Created element "\vob1\add_elem.cmd.bak" (type "text_file").
Checked in "\vob1\add_elem.cmd.bak" version "\main\1".
Checked in "\vob1" version "\main\4".
Z:\vob1>cleartool mkelem -nc -mkpath -ci "\vob1\test.txt"
Checking out parent directory "\vob1".
Created element "\vob1\test.txt" (type "text_file").
Checked in "\vob1\test.txt" version "\main\1".
Checked in "\vob1" version "\main\5".
如上输出结果,实现了在当前view下,不同目录的私有文件全部入库。
楼主应该可以结帖了,欢迎各位测试跟帖,提出疑问或更简便的实现方法。
[
本帖最后由 howardling 于 2007-1-20 20:42 编辑 ]