利用powershell解压文件
本帖最后由 sandyvs 于 2025-5-23 11:14 编辑如果是win10,win11就简单了
;[功能] 工具-解压zip文件(系统自带),(czx:uzipz fss path)
;[用法](czx:uzipz (getfiled "请选择压缩文件" "" "zip" 0) nil)
;[说明]fss = 要解压的文件完整路径//path = 解压路径,nil时与解压文件同目录//说明:只支持zip
(defun czx:uzipz (ffs path / cmd)
(if (null path) (setq path (vl-filename-directory ffs)))
(setq cmd (strcat
"Expand-Archive -Path "
"\'" ffs "\'"
" -DestinationPath "
"\'" path "\'"
" -force";覆盖
)
)
(czx:runps cmd nil)
)
(defun czx:RunPS (command flag / run)
(setq shell (vlax-create-object "Shell.Application"))
(if flag (setq run "runas") (setq run ""))
(vlax-invoke-method
shell
'ShellExecute
"powershell.exe" ; 程序路径
(strcat "-Command \"" command "\"") ; 参数(需转义内部引号)
"" ; 工作目录(空表示默认)
run ; 动词,请求管理员权限
0 ; 窗口模式(0= 隐藏 1=正常窗口)
)
(vlax-release-object shell)
)
大佬的帖子,http://bbs.mjtd.com/forum.php?mo ... hlight=%BD%E2%D1%B9
用dwx解压文件,需要系统注册dynwrapx.dll和UnRAR64.dll。还提到了7z可以,试着弄了下,命令行工具7za,支持zip,7z等格式
;[功能] 工具-解压文件,(czx:uzip fss path)
;[用法](czx:uzip (getfiled "请选择压缩文件" "" "zip" 0) nil)
;[说明]fss = 要解压的文件完整路径//path = 解压路径,nil时与解压文件同目录//说明:支持zip,7z等格式
(defun czx:uzip (ffs path / 7zapath cmd)
(setq 7zaPath (findfile "7ZA.exe")))
(if7zaPath
(progn
(if (null path) (setq path (vl-filename-directory ffs)))
(setq cmd (strcat
"& \"" 7zaPath "\""
" x "
"\'" ffs "\'"
" -o"
"\'" path "\'"
" -y";覆盖
)
)
(czx:runps cmd nil)
)
(princ " \n 请将 7ZA.exe 放到CAD搜索路径!")
)
)
WinRAR.exe也是可以的,powershell里面 "E:\桌面\WinRAR.exe" x "e:\桌面\2.zip" "e:\桌面"
至于用途,我是把插件用的的支持文件打一个压缩包,然后生成vlx,http://bbs.mjtd.com/forum.php?mo ... hlight=%B4%F2%B0%FC
需要的时候释放出来,再解压,把解压目录添加到搜索路径就行了
越玩越高级了,cad还可以做啥? ZIP不需要上powershell,FSO就能搞定了。 kozmosovia 发表于 2025-5-23 12:28
ZIP不需要上powershell,FSO就能搞定了。
啊,原来早就有http://bbs.mjtd.com/thread-193807-1-1.html
页:
[1]