andr3flaviano 发表于 2022-7-5 17:05:04

重命名当前打开的文件

大家好!
我需要一个lisp来重命名当前打开的文件。我已经有了一个例程,它接受当前文件名并用新文件名创建一个字符串(旧名称中只有六个数字需要更改)。。。但是我不能把旧名字换成新名字。我曾尝试使用(Vl文件重命名),但我认为我没有正确使用它。。。。代码如下:
 
(定义C:更改名称(n1 n2 n3 n4 n5 n6)
 
(setq new_编号(strcat(itoa n1))
(itoa n2)
(itoa n3)
(itoa n4)
(itoa n5)
(itoa n6)))
 
(setq old_名称(strcat(getvar“DWGPREFIX”)(getvar“DWGNAME”))
 
(setq大小(strlen old_name))
 
(setq最终(-尺寸18));
 
(setq start\u name(substr old\u name 1 final))
 
(setq end_名称(substr old_名称(+final 7)(-size final)))
 
(setq new_name(strcat start_name new_number end_name))
 
(警报旧名称)
 
(警报新名称)
 
(vl文件重命名old\u name new\u name)
 
); 结束defun
 
 
旧名称为:D:\Profiles\s-Andre。Almeida\Desktop\Autocad\3-157941-012-005。图纸
 
例如,新名称可以是:D:\Profiles\s-Andre。Almeida\Desktop\Autocad\3-666666-012-005。图纸
 
我只需要用(vl文件重命名)更改名称
 
有人能帮我吗?

Tharwat 发表于 2022-7-5 17:23:16

您确定可以重命名当前打开的文件吗?

ReMark 发表于 2022-7-5 17:35:27

我怀疑你能在文件打开时重命名它。为什么不选择在新文件名下执行“另存为”?

SLW210 发表于 2022-7-5 17:51:11

请阅读代码发布指南并编辑您的帖子,将代码包含在代码标签中。
 

Your Code Here=
Your Code Here

marko_ribar 发表于 2022-7-5 17:56:35

在这里:
 
(setq end_名称(substr old_名称(+final 7)(-size final)))
 
 
(-size final)足够了。。。您可以使用:
 
(setq end_名称(substr old_名称(+最后7)))

andr3flaviano 发表于 2022-7-5 18:09:34

嗯。。。
我想我可以重命名打开的文件,但我会使用“另存为”这样。。。谢谢大家!
页: [1]
查看完整版本: 重命名当前打开的文件