从Lisp w/Co调用批处理文件
我正在做一个项目,创建该图纸的dwg和PDF文件。我需要将这两个文件压缩到一起,以便稍后发送。我的想法是使用从LISP启动的批处理文件,但我需要向其传递一个命令行参数,以便正确命名zip文件。该命令行参数将是一个变量,随着程序的每次运行而变化。有人这样做过吗?我还想从LISP动态编写批处理文件,然后启动它。这样就不需要争论了。
考虑AUTOMATICPUB系统变量。
vl文件名Mktemp? 嘿,AUTOMATICPUB看起来对我想做的其他任务很有趣。谢谢
此任务要求使用用户请求图形时指定的唯一ID号命名文件。事实上,我们明天会在网上直播,所以我把工作安排在今晚之前完成。
批处理文件将准备zip文件,但我需要将此zip文件命名为unique ID#。拉链,每一个都会不同。它是完全自动化的,所以我不能要求用户做任何事情。事实上,用户现在通过他们的web浏览器发出这些请求,不再需要Excel,他们甚至不需要AutoCAD。昨天是我在这个客户的一周年纪念日,我们走过了漫长的道路。
我的想法是让LISP程序编写批处理文件,然后启动TAPP来运行它。这样,批处理文件可以包含所有变量,并将其分配给实际路径名。我在处理所有的/\和“”时遇到了一些问题。但我需要在批处理文件中显示这一行,一旦它准备就绪。
@echo off
C:\Program Files\7-zip\7z.exe C:\xampp\htdocs\out\unique-ID#.zip c:\temp\unique-ID#.*
???
(vl-load-com)
(defun c:FOO ( / filepath file)
(setq filepath (vl-filename-mktemp "foo.txt"))
(setq file (open filepath "w"))
(write-line "@echo off" file)
(write-line
"C:\Program Files\7-zip\7z.exe C:\xampp\htdocs\out\unique-ID#.zip c:\temp\unique-ID#.*"
file
)
(close file)
(startapp "notepad" filepath)
(princ)
)
这很酷,如果时间允许,我会仔细研究一下。现在,这是我想到的,她工作得很好。
(setq f (open "C:/0/zipmeup.bat" "w"))
(write-line "@echo off" f)
(write-line (strcat "\"C:\Program Files\\7-Zip\\7z.exe\" a C:\\xampp\\htdocs\\out\\" uniqueID ".zip c:\\temp\\" uniqueID "* -x!*.bak") f)
(close f)
(startapp "C:/0/zipmeup.bat")
哎呀,我的错。当我测试这个时,我只测试了批处理文件是否被正确写入,然后我手动执行了它。当然,一切都很顺利。但是,当LISP程序运行时,图形文件本身必须打开,7-zip程序报告说,它不能将该文件包含在存档中,因为其他程序正在使用该文件。所以我想,太好了,我会关闭绘图文件。。。但是当然,我也面临着同样的宿敌,那就是一旦图形文件关闭,LISP就不再加载。该死,为什么他们在AutoDesk没有想到这一点。有无数次我需要关闭图形文件,然后让LISP文件在关闭之前再执行几个任务。
我将不得不回到这个问题上。
更新:发现这个关于7-zip的小新闻。。。。使用-ssw开关将允许它使用由另一个进程打开的文件。看来我们自由了。 也许是剧本
(load "myzipper")
close y
(startapp "C:/0/zipmeup.bat")
script myzipper2.....see below
如果要再次重新打开dwg,则可能需要2个脚本,以便重新打开myzipper的正确dwg部分,该脚本或可能作为BAT文件acad的一部分。exe myolddwname 您是否尝试过使用7-Zip的命令行开关来压缩共享文件?
7-Zip 9.20Copyright (c) 1999-2010 Igor Pavlov2010-11-18
Usage: 7z <command> [<switches>...] <archive_name> [<file_names>...]
[<@listfiles...>]
<Commands>
a: Add files to archive
b: Benchmark
d: Delete files from archive
e: Extract files from archive (without using directory names)
l: List contents of archive
t: Test integrity of archive
u: Update files to archive
x: eXtract files with full paths
<Switches>
-ai]{@listfile|!wildcard}: Include archives
-ax]{@listfile|!wildcard}: eXclude archives
-bd: Disable percentage indicator
-i]{@listfile|!wildcard}: Include filenames
-m{Parameters}: set compression Method
-o{Directory}: set Output directory
-p{Password}: set Password
-r[-|0]: Recurse subdirectories
-scs{UTF-8 | WIN | DOS}: set charset for list files
-sfx[{name}]: Create SFX archive
-si[{name}]: read data from stdin
-slt: show technical information for l (List) command
-so: write data to stdout
-ssc[-]: set sensitive case mode
-ssw: compress shared files
-t{Type}: Set type of archive
-u[-][!newArchiveName]: Update options
-v{Size}: Create volumes
-w[{path}]: assign Work directory. Empty path means a temporary directory
-x]]{@listfile|!wildcard}: eXclude filenames
-y: assume Yes on all queries
页:
[1]