Cadence软件使用过程中偶尔会遇到文件被lock的情况,这是Cadence软件对文件的一种保护措施,大部分情况都是对用户友好的,但是偶尔也会给用户带来困扰,给工作带来的一定的不便。

文件是如何被锁的

Cadence在用户打开文件进行编辑的时候会在文件的同一级目录新建一个lock文件,用来标识文件的状态。

一般情况下如果文件被正常关闭,这个lock文件会在文件关闭或者程序退出的时候自动删除。

可是如果编辑过程中文件被非正常关闭,软件来不及删除对应的lock文件就会导致下一次文件无法以编辑模式打开,需要用户去该文件的所在路径删除遗留的lock文件。

Using the CLS Administrative Tool

Cadence提供了CLS Administrative Tool给用户使用,通过这个工具,用户可以随时查看或者释放lock文件。

使用CLS Administrative Tool管理lock文件比用户直接去某一目录下操作lock文件要安全并且方便很多,通过CLS Administrative Tool可以轻易完成以下几个工作:

  • 解锁指定的文件(删除指定目录下的lock文件)
  • 查看某一目录及其子目录下所有的lock文件
  • 删除某一目录及其子目录下所有的lock文件
  • 删除所有CLS格式的lock文件,无论该文件在何时、何地创建

CLS Administrative Tool还可以实现其它功能,感兴趣的同学可以自行在Cadence Help中搜索与CLS Administrative Tool相关的内容,进行更深入的学习。CLS Administrative Tool可以运行在交互式界面或者命令行模式,小目同学觉得它运行在命令行模式更加方便,也与脚本实现更加相近,所以这里只简单介绍一下它运行在命令行模式下的内容。

CLS Administrative Tool运行命令

命令 功能描述
clsAdminTool -ale directoryHierarchy 列出该文件夹及其子文件夹下所有lock文件
clsAdminTool -are directoryHierarchy 删除该文件夹及其子文件夹下所有lock文件
clsAdminTool -asre filePath 删除该文件对应的lock文件

直接在终端中输入上面命令,可以运行CLS Administrative Tool并输出相应的结果,下面是输出信息。

使用skill脚本运行命令

有了上面的铺垫应该很容易想到,所谓的删除lock文件的脚本最简单、最安全的方法就是编写一个skill脚本,可以按照需要执行上面的命令。恰好,skill脚本提供sh()函数,可以在skill脚本中执行shell命令。

根据需要小目同学编写了一个skill脚本,其中定义了一个函数和一个快捷键,在需要删除lock文件的时候使用相应的快捷键调用一遍函数运行lock文件删除命令即可。

/**********************************************************************
*author     :   Write by Official Wechat Account: ICSkillSharing
*date       :   2020-08-07
*function   :   Delete lock files
**********************************************************************/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; start Delete Lock Files
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; bindkeyshiSetBindKeys("Layout" list(list("<Key>D" "view_delete_lock_file_cb()"))
)hiSetBindKeys("Schematics" list(list("<Key>D" "view_delete_lock_file_cb()"))procedure( view_delete_lock_file_cb( )sh(strcat("clsAdminTool -asre " geGetWindowCellView( hiGetCurrentWindow( ) )~>fileName))printf("Delete lock file for view: %s" geGetWindowCellView( hiGetCurrentWindow( ) )~>cellName )
); procedure;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; end Delete Lock Files
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

很多时候只删除一个文件的lock文件可能还无法满足需求,将脚本完善,分别为单个文件和库定义删除lock文件的函数。

/**********************************************************************
*author     :   Write by Official Wechat Account: ICSkillSharing
*date       :   2020-08-07
*function   :   Delete lock files
**********************************************************************/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; start Delete Lock Files
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; bindkeyshiSetBindKeys("Layout" list(list("<Key>D" "view_delete_lock_file_cb()");list("Shift<Key>D" "lib_delete_lock_file_cb()"))
)hiSetBindKeys("Schematics" list(list("<Key>D" "view_delete_lock_file_cb()");list("Shift<Key>D" "lib_delete_lock_file_cb()"))
)procedure( view_delete_lock_file_cb( )sh(strcat("clsAdminTool -asre " geGetWindowCellView( hiGetCurrentWindow( ) )~>fileName))printf("Delete lock file for view: %s" geGetWindowCellView( hiGetCurrentWindow( ) )~>cellName )
); procedureprocedure( lib_delete_lock_file_cb( )sh(strcat("clsAdminTool -are " ddGetObjReadPath(geGetWindowCellView( hiGetCurrentWindow( ) )~>lib)))printf("Delete lock file for library: %s" geGetWindowCellView( hiGetCurrentWindow( ) )~>libName )
); procedure;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; end Delete Lock Files
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

简介

作者:小目(wx:student_xiaomu)

微信公众号:ICSkillSharing,是一个共同学习的平台,分享最新IT类资讯、原创内容、IC中脚本语言的教程与使用心得、模拟IC新手在学习过程中遇到的问题等,与大家一起成长进步!

如何写sybase sql脚本文件_写一个删除lock文件的skill脚本相关推荐

  1. java dom xml 换行,dom4j解析xml文件_用DOM解析XML文件,怎么才能让解析出来的文本不用换行_dom解析xml文件...

    网友求助:dom4j解析xml文件_用DOM解析XML文件,怎么才能让解析出来的文本不用换行_dom解析xml文件 问题importjava.text.SimpleDateFormat; import ...

  2. linux 复制文件_使用 rsync 复制大文件的一些误解 | Linux 中国

    这位朋友认为 rsync 是一个神奇的工具,应该仅"同步"文件本身.但是,我们大多数人所忘记的是了解 rsync 的真正含义.用法,以及我认为最重要的是它原本是用来做什么的.-- ...

  3. python压缩文件为zip-python 压缩文件为zip后删除原文件

    压缩.log 文件为zip后删除原文件 需要注意:本人作为小白,该脚本需要和.log在一起,后面有时间需要改正. #!/usr/local/python/bin/python #-*-coding=u ...

  4. 360android文件恢复,删除的文件怎么恢复?360删除的文件怎么恢复?

    如今几乎所有人都会使用一款安全软件,电脑垃圾的清理电脑防毒等都必须用到一款安全软件,但是这些安全软件有时在清理垃圾删除一些文件的时候可能会删除一些不该删除的文件,那么删除的文件怎么恢复?360删除的文 ...

  5. bat递归查找指定文件_教你在电脑上用批处理脚本全盘查找文件

    0x00- 效果预览: 0x01 - 前言: 说起文件查找大家肯定都会,那么你试过用批处理脚本来查找一个文件在哪里吗? 今天就让我们来写一个能够全盘查找文件的批处理脚本吧! 0x02 - 准备: 设备 ...

  6. python程序编译之后、找不到生成的pyc文件_为什么主要的可运行的Python脚本没有被编译为pyc文件,如模块?...

    当模块加载时,py文件被"字节编译"为pyc文件.时间戳记记录在pyc文件中. 这样做不会使其运行速度更快,但加载速度更快. 因此,当您加载它们时,"字节编译" ...

  7. 写乐100道练习题_写乐大型21K详细评测(文长慎入)

    本帖最后由 预应力钢笔尖 于 2012-6-9 19:06 编辑 过了两天了,让我对刚入手的写乐21K做一个简单的评测. 在之前的帖子当中提到过,我最开始就是因为看了黄瓜兄的"低端横向对比& ...

  8. python处理xml文件_实例Python处理XML文件的方法

    需求 有一个表,里面数据量比较大,每天一更新,其字段可以通过xml配置文件进行配置,即,可能每次建表的字段不一样. 上游跑时会根据配置从源文件中提取,到入库这一步需要根据配置进行建表. 解决 写了一个 ...

  9. linux怎样自动检查link文件_自动共享和上传文件到兼容的托管站点 | Linux 中国

    Anypaste 将会根据你想上传的文件的类型来自动挑选合适的托管站点.简单地说,照片将被上传到图像托管站点,视频被传到视频站点,代码被传到 pastebin. -- Sk(作者) 前阵子我们写了一个 ...

最新文章

  1. LeetCode周赛191
  2. TCP服务器和客户端的链接例子(侧重点在注意关闭套接子,减少套接子的描述子)
  3. java获取页面标签_java获取网页源代码后,提取标签内容……
  4. php的登陆代码,PHP登陆页面完整代码
  5. SQL中字符串拼接方法(MySQL,SQLServer)
  6. 达梦数据库DM7手把手安装教程
  7. 【51单片机实例教程】智能小车(一)让你的小车跑起来
  8. 关于spyder打不开的问题
  9. 咪蒙这么火是怎么做到的
  10. 与孔子同世之闻人少正卯
  11. 【问链财经-区块链基础知识系列】 第二十三课 一张纸搞定B2B供应链金融产品设计思路
  12. 上传excel单元格校验(通过注解实现)
  13. excel单元格中查找空格
  14. 什么是固态功率放大器?射频固态功率放大器?
  15. 多WAN路由器配置 实现简述
  16. 基于unity+HTC VIVE的室内漫游交互(教你如何“无代码”VR交互)
  17. 决策树算法的 MATLAB 实践
  18. MYSQL窗口函数用法及区别
  19. python古诗词风格分析_2017年高考古诗词鉴赏技巧:分析语言风格题解题模式
  20. 电气器件系列十三:塑料外壳式断路器

热门文章

  1. 如何去重一个Oracle表
  2. 数字证书中keytool命令使用说明
  3. 《编程匠艺》读书笔记之十四
  4. 自制清理电脑里的垃圾软件
  5. Sql语句查询 显示序号
  6. Service 之间如何通信?- 每天5分钟玩转 Docker 容器技术(101)
  7. Linux之磁盘管理,分区
  8. PHP Warning: File upload error - unable to create a temporary file in Unknown on line 0
  9. Linux下使用ssh密钥实现无交互备份
  10. [LeetCode] NO.383 Ransom Note