明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1219|回复: 14

[讨论] 关于startapp执行dos路径

[复制链接]
发表于 2022-9-24 13:43 | 显示全部楼层 |阅读模式
本帖最后由 自贡黄明儒 于 2022-9-24 13:50 编辑

;;关于startapp执行dos路径
;;响应baitang36要求发此文
;;startapp有弹窗,我不喜欢。但对于大量循环,ET中的spin似乎也不管用,用户还认为
;;死机了,多半会去按ESC键。用startapp弹窗,倒不失一个办法

;;下面用一个不正确写,不断弹窗,表示并未死机
  1. (startapp "cmd.exe /c del/f D://1.txt");不断弹窗,表示并未死机


;;话扯远了,还是说路径。
;;当文件夹或者文件名上有空格,不能正确执行。如
(startapp "cmd.exe /c del/f D:\\00 00\\1 1.txt")
;;看起来正确,但不能删除文件“1 1.txt”
;;【随风】用如下办法可以成功删除
(setq fileName (vlax-get-property (vlax-invoke-method (vlax-get-or-create-object

"scripting.filesystemobject") 'GetFile "D:\\00 00\\1 1.txt") 'ShortPath))
(startapp (strcat "cmd.exe /c del/f " fileName))
;;这个短文件名可以在dos窗口,用dir/x可以查看。但我试验有一次不能正确的取得短文件名,下面是对文件或者文件加
引号来实现
;;这是一个很牛的分割法(基本同parse8 parse12 parse14),容易理解
;;delim是一个字符串集合,其中的每一个字符都会被当作是分割符号 by qjchen@gmail.com
;;如 (parse4 "符号25 35 45 ; 55, 66 " " ;")=> ("符号25" "35" "45" "55," "66")
;;(parse4 "aa ,10 b.10x20,.2" ",.")("aa " "10 b" "10x20" "2")
;;(parse4 "aa  10 b10x20.2" " ")("aa" "10" "b10x20.2")
;;(parse4 "aa  10 b10x20.2" "")("aa  10 b10x20.2")
(defun parse4 (str delim / L1 L2)
  (setq        str   (vl-string->list str)
        delim (vl-string->list delim)
  )
  (while str
    (if        (not (member (car str) delim))
      (setq l1 (cons (car str) l1))
      (if l1
        (setq l2 (cons (vl-list->string (reverse l1)) l2)
              l1 nil
        )
      )
    )
    (setq str (cdr str))
  )
  (if l1
    (setq l2 (cons (vl-list->string (reverse l1)) l2))
  )
  (reverse l2)
)



(defun _Princ1Path (path / L a)
  ;;以\分割字符串
  (setq path (parse4 path "\\"))
  (setq        path (mapcar (function (lambda (x)
                                 (if (VL-STRING-SEARCH " " x)
                                   (VL-PRIN1-TO-STRING x)
                                   x
                                 )
                               )
                     )
                     path
             )
  )
  (setq L "")
  (while (setq a (car path) path (cdr path))
    (setq L (strcat L a "\\"))
  )  
  (strcat L a)
)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

评分

参与人数 2明经币 +2 收起 理由
baitang36 + 1 很给力!
tigcat + 1 很给力!

查看全部评分

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2022-9-26 16:46 | 显示全部楼层
删除文件路径有空格时,可以把路径加 ""
(startapp "cmd.exe /c del/f \"D:\\00 00\\1 1.txt\"")


acad.ppg文件中添加  shell "代码",vbhide

SHELL0,,0,*OS Command0:,
SHELL4,,4,*OS Command4:,
执行
发表于 2022-9-26 14:27 | 显示全部楼层
(startapp "cmd.exe /c del/f D:\\00 00\\1 1.txt")
改成
(startapp "cmd.exe /c del /f \"D:\\00 00\\1 1.txt\"")
成功删除
发表于 2022-9-26 14:15 | 显示全部楼层
本帖最后由 crtrccrt 于 2022-9-26 14:27 编辑


(startapp "cmd.exe /c del/f D:\\00 00\\1 1.txt")
改成
(startapp "cmd.exe /c del /f \"D:\\00 00\\1 1.txt\"")
发表于 2022-9-24 22:31 | 显示全部楼层
向黄大师学习下!
发表于 2022-9-25 06:32 | 显示全部楼层
回复查看隐藏内容,谢谢大师的分享。
发表于 2022-9-25 10:25 | 显示全部楼层
向黄大师学习下!
发表于 2022-9-25 19:01 | 显示全部楼层
向黄大师学习!
发表于 2022-9-26 08:17 | 显示全部楼层
感谢黄大师分享程序!
发表于 2022-9-26 15:59 | 显示全部楼层
很给力的试验
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-17 13:45 , Processed in 0.220215 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表