乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 9|回复: 7

[编程交流] 从Lisp w/Co调用批处理文件

[复制链接]

180

主题

639

帖子

463

银币

中流砥柱

Rank: 25

铜币
897
发表于 2022-7-6 07:05:58 | 显示全部楼层 |阅读模式
我正在做一个项目,创建该图纸的dwg和PDF文件。我需要将这两个文件压缩到一起,以便稍后发送。我的想法是使用从LISP启动的批处理文件,但我需要向其传递一个命令行参数,以便正确命名zip文件。该命令行参数将是一个变量,随着程序的每次运行而变化。
 
有人这样做过吗?我还想从LISP动态编写批处理文件,然后启动它。这样就不需要争论了。
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 07:16:44 | 显示全部楼层
 
考虑AUTOMATICPUB系统变量。
 
 
vl文件名Mktemp?
回复

使用道具 举报

180

主题

639

帖子

463

银币

中流砥柱

Rank: 25

铜币
897
发表于 2022-7-6 07:26:28 | 显示全部楼层
嘿,AUTOMATICPUB看起来对我想做的其他任务很有趣。谢谢
 
此任务要求使用用户请求图形时指定的唯一ID号命名文件。事实上,我们明天会在网上直播,所以我把工作安排在今晚之前完成。
 
批处理文件将准备zip文件,但我需要将此zip文件命名为unique ID#。拉链,每一个都会不同。它是完全自动化的,所以我不能要求用户做任何事情。事实上,用户现在通过他们的web浏览器发出这些请求,不再需要Excel,他们甚至不需要AutoCAD。昨天是我在这个客户的一周年纪念日,我们走过了漫长的道路。
 
我的想法是让LISP程序编写批处理文件,然后启动TAPP来运行它。这样,批处理文件可以包含所有变量,并将其分配给实际路径名。我在处理所有的/\和“”时遇到了一些问题。但我需要在批处理文件中显示这一行,一旦它准备就绪。
 
  1. @echo off
  2. C:\Program Files\7-zip\7z.exe C:\xampp\htdocs\out\unique-ID#.zip c:\temp\unique-ID#.*
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 07:32:13 | 显示全部楼层
???
 
  1. (vl-load-com)
  2. (defun c:FOO ( / filepath file)
  3. (setq filepath (vl-filename-mktemp "[color=red][i]foo.txt[/i][/color]"))
  4. (setq file (open filepath "w"))
  5. (write-line "@echo off" file)
  6. (write-line
  7.    "C:\Program Files\7-zip\7z.exe C:\xampp\htdocs\out\unique-ID#.zip c:\temp\unique-ID#.*"
  8.    file
  9. )
  10. (close file)
  11. (startapp "notepad" filepath)
  12. (princ)
  13. )
回复

使用道具 举报

180

主题

639

帖子

463

银币

中流砥柱

Rank: 25

铜币
897
发表于 2022-7-6 07:47:00 | 显示全部楼层
这很酷,如果时间允许,我会仔细研究一下。现在,这是我想到的,她工作得很好。
 
  1.      (setq f (open "C:/0/zipmeup.bat" "w"))
  2.      (write-line "@echo off" f)
  3.      (write-line (strcat ""C:\Program Files\\7-Zip\\7z.exe" a C:\\xampp\\htdocs\\out\" uniqueID ".zip c:\\temp\" uniqueID "* -x!*.bak") f)
  4.      (close f)
  5.      (startapp "C:/0/zipmeup.bat")
回复

使用道具 举报

180

主题

639

帖子

463

银币

中流砥柱

Rank: 25

铜币
897
发表于 2022-7-6 07:53:50 | 显示全部楼层
哎呀,我的错。当我测试这个时,我只测试了批处理文件是否被正确写入,然后我手动执行了它。当然,一切都很顺利。但是,当LISP程序运行时,图形文件本身必须打开,7-zip程序报告说,它不能将该文件包含在存档中,因为其他程序正在使用该文件。所以我想,太好了,我会关闭绘图文件。。。但是当然,我也面临着同样的宿敌,那就是一旦图形文件关闭,LISP就不再加载。该死,为什么他们在AutoDesk没有想到这一点。有无数次我需要关闭图形文件,然后让LISP文件在关闭之前再执行几个任务。
 
我将不得不回到这个问题上。
 
更新:发现这个关于7-zip的小新闻。。。。使用-ssw开关将允许它使用由另一个进程打开的文件。看来我们自由了。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 08:05:20 | 显示全部楼层
也许是剧本
 
  1. (load "myzipper")
  2. close y
  3. (startapp "C:/0/zipmeup.bat")
  4. script myzipper2.....see below

 
如果要再次重新打开dwg,则可能需要2个脚本,以便重新打开myzipper的正确dwg部分,该脚本或可能作为BAT文件acad的一部分。exe myolddwname
回复

使用道具 举报

11

主题

968

帖子

919

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
99
发表于 2022-7-6 08:09:32 | 显示全部楼层
您是否尝试过使用7-Zip的命令行开关来压缩共享文件?
  1. 7-Zip 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18
  2. Usage: 7z <command> [<switches>...] <archive_name> [<file_names>...]
  3.       [<@listfiles...>]
  4. <Commands>
  5. a: Add files to archive
  6. b: Benchmark
  7. d: Delete files from archive
  8. e: Extract files from archive (without using directory names)
  9. l: List contents of archive
  10. t: Test integrity of archive
  11. u: Update files to archive
  12. x: eXtract files with full paths
  13. <Switches>
  14. -ai[r[-|0]]{@listfile|!wildcard}: Include archives
  15. -ax[r[-|0]]{@listfile|!wildcard}: eXclude archives
  16. -bd: Disable percentage indicator
  17. -i[r[-|0]]{@listfile|!wildcard}: Include filenames
  18. -m{Parameters}: set compression Method
  19. -o{Directory}: set Output directory
  20. -p{Password}: set Password
  21. -r[-|0]: Recurse subdirectories
  22. -scs{UTF-8 | WIN | DOS}: set charset for list files
  23. -sfx[{name}]: Create SFX archive
  24. -si[{name}]: read data from stdin
  25. -slt: show technical information for l (List) command
  26. -so: write data to stdout
  27. -ssc[-]: set sensitive case mode
  28. [color=red]-ssw: compress shared files[/color]
  29. -t{Type}: Set type of archive
  30. -u[-][p#][q#][r#][x#][y#][z#][!newArchiveName]: Update options
  31. -v{Size}[b|k|m|g]: Create volumes
  32. -w[{path}]: assign Work directory. Empty path means a temporary directory
  33. -x[r[-|0]]]{@listfile|!wildcard}: eXclude filenames
  34. -y: assume Yes on all queries
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-10 10:06 , Processed in 0.418613 second(s), 68 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表