明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: nonsmall

[【不死猫】] 【原创】Lisp调用DOS进行批处理V2.2更新(主体优化)

  [复制链接]
发表于 2008-10-28 10:39 | 显示全部楼层
兄弟,你的源码能公布一下吗。不甚感激!
发表于 2008-10-28 13:19 | 显示全部楼层
好程序呀.
发表于 2008-12-30 08:54 | 显示全部楼层
呵呵说2.2版本,怎么还是2.0版本啊?
发表于 2009-4-16 16:20 | 显示全部楼层
本帖最后由 作者 于 2009-4-16 16:21:13 编辑

好文章,这样的LISP是不是可以编写为传说中的病毒程序啊?!!
发表于 2009-6-11 13:28 | 显示全部楼层

下班回家的代码

(rundos
 '("shutdown -s -f -t 10")
)

如果配合几个taskkill下班的时候可以帮你加速关机 o(∩_∩)o...

此命令慎用!测试结果强制关机状态不可取消!后面的10是关机前提示时间.

到底是关掉那几个tsakkill可以加速关机啊

发表于 2009-7-3 11:32 | 显示全部楼层
本帖最后由 作者 于 2009-7-3 14:23:29 编辑

猜想:

(startapp "wscript" "makedir.vbs")

命令: (command "shell" "g:\vbs.vbs")
shell
操作系统命令: g:vbs.vbs
命令: nil

======================================================

liminnet 你这个人啊,真的是满天飞啊,要么你的名字干脆更名为 “满天飞”算了,导出问一些不值得一提问题,自己想想,

或者自己搜索一下都可以很容易的解决了,看你花在这方面的时间也够长了的,怎么就没有提点长进呢?

定义外部命令 
    概念        操作步骤        参考     
 


在 AutoCAD 运行时,用户可调用其他程序或实用程序,例如:

Windows 系统命令和实用程序,例如 start、type、dir 或 copy
应用程序,例如文本编辑器或字处理器
数据库管理程序、电子表格和通信程序
用户提供的程序,例如批处理文件或 Visual Basic 应用程序
当用户输入不常用的命令时,AutoCAD 将在 acad.pgp(AutoCAD support 文件夹中用于存储命令定义的文件)中查找该命令。

acad.pgp 的第一部分定义了外部命令。使用记事本或任何以 ASCII 格式保存文件的文本编辑器,用户可以编辑 acad.pgp 以添

加命令定义。要打开 PGP 文件,请在“工具”菜单上,单击“自定义”“编辑自定义文件”“程序参数”(acad.pgp)。

注意  编辑 acad.pgp 之前,需要先创建备份,以便将来需要时恢复。

定义外部命令时,需要指定在 AutoCAD 命令提示中使用的命令名,以及传递给操作系统的可执行命令字符串。外部命令部分中

的每行都包括以逗号分隔的五个字段,如下所示:

command,[executable],flags[,

  • prompt[,return_code]]
    command

    在命令提示中输入的命令。如果此名称是 AutoCAD 内部命令名,则该命令将被忽略。命令名不区分大小写。

    executable

    输入命令名时传递给操作系统的常量字符串,可以是能在操作系统提示中执行的任何命令。字符串可包含开关或参数。该字符串

    是否区分大小写由运行的应用程序决定。

    flags

    所需位码参数。按任意组合将这些整数值相加以得到所需的结果。

    0  启动应用程序并等待结束。

    1  不等待应用程序结束。

    2  最小化运行应用程序。

    4  “隐藏”运行应用程序。

    8  将参数字符串括在引号中。

    位值 2 和 4 是互斥的,如果同时指定了这两个位值,那么只使用 2 位。因为 AutoCAD 在应用程序运行时不能使用,所以应尽

    量避免不带值 1 的值 2 或 4。

    位值 8 使 del 这类命令可以正确处理包含空格的文件名。注意这将导致不能向这些命令传递用空格分隔的文件名列表。如果想

    使用多文件支持,则不要使用位值 8。

    prompt

    可选字段。它指定显示在 AutoCAD 命令行中的提示。此提示的响应被添加到 executable 字段提供的字符串后面。如果 prompt

    字段的第一个字符是星号 (*),则响应可以包含空格,用户必须按ENTER键结束响应。或者,可以用空格键或ENTER键结束响应。

    如果未指定 prompt,则不需要输入。但如果要提供返回码或提示行需要后续空格,则必须添加逗号。

    return_code

    可选位码参数。可将这些整数值按任意组合相加以得到所需的结果。例如,如果需要值 1 和 2,可用 3 作为返回码。值的定义

    如下(代码 0 和 4 对窗口环境无意义,因此不包括在此列表中):

    1  加载 DXB 文件。AutoCAD 在命令结束后将名为 $cmd.dxb 的 DXB 文件加载到图形中。加载 DXB 文件后,$cmd.dxb 文件被

    删除。此操作产生的结果与 DXBIN 命令相同。

    2  用 DXB 文件构造块定义。AutoCAD 用名为 $cmd.dxb 的 DXB 文件创建块定义。prompt 字段的响应用作块名,此名称必须是

    当前图形中不存在的有效块名,因此,这种模式不能重定义以前定义的块。AutoCAD 载入该 DXB 文件后,$cmd.dxb 文件被删除

    。 INSERT 命令的默认名称被设置为新定义的块的名称。

    此文件还可以用分号 (;) 引入说明文字。

    Windows 系统命令
    定义外部命令时,Windows 系统命令 start 和 cmd 非常有用。如果指定的 executable 字符串中未使用 start 或 cmd 命令,

    则必须等该窗口关闭后才能继续使用 AutoCAD。

    start 命令启动独立的窗口并运行指定的程序或命令。不带任何参数的 start 命令将打开新的命令提示窗口。start 命令有许

    多影响新窗口显示的命令行开关。要启动 Windows 应用程序,请使用不带任何开关的 start 命令。start 命令也可用于启动与

    某个应用程序相关联的文档。例如,可以用 start 命令直接打开用字处理器创建的文档或 HTML 文件。

    cmd 命令打开一个命令提示窗口,用作 AutoCAD 的 Shell。在将控制权返回给 AutoCAD 命令提示之前,必须关闭此窗口。/c

    和 /k 命令行开关对外部命令相当有用。/c 开关执行指定的命令,然后停止(关闭窗口)。/k 开关执行指定的命令,然后继续

    (保持窗口打开)。使用 /k 开关时,用户必须自己关闭命令窗口(用 exit 命令)。

    通常,使用start 启动与 AutoCAD 相互独立的新窗口或应用程序。而用 cmd 运行不创建独立窗口的批处理文件或命令脚本,或

    者创建将控制权返回给 AutoCAD 之前必须关闭的窗口。关于这些命令和开关的详细信息,请参见 Windows 系统命令文档。

    自定义命令
    下例定义了三个新命令:RUN、LISTSET 和 DXB2BLK。

    RUN, cmd /c,0,*Batch file to run: ,
    LISTSET,cmd /k SET,0
    DXB2BLK,cmd /c DXBCOPY,0,DXB file: ,2
    RUN 命令运行批处理文件或命令脚本。带 /c 开关的 cmd 命令首先打开命令窗口,运行批处理文件,然后关闭。

    LISTSET 命令显示当前 DOS 环境变量设置。因为此样例使用 cmd /k,而不是 start,所以在返回 AutoCAD 之前,用户必须自

    己关闭命令窗口。要使此窗口保持活动,请使用 start /realtime。关于这些命令和开关的详细信息,请参见 Windows 系统命

    令文档。

    DXB2BLK 命令用指定的 DXB 文件创建块定义。DXB 文件将所有对象转换为直线。此过程有一个非常有用的附带作用:它提供了

    一种将文字对象分解为直线的简单方法。

    DXB2BLK 将指定的 DXB 文件名传递给 dxbcopy 批处理文件,此批处理文件将该文件名复制到名为 $cmd.dxb 的文件中。然后,

    AutoCAD 用指定的 DXB 文件创建块。答复 DXB 文件提示的名称被用作新块的名称。要创建 dxbcopy.cmd 文件,请在 DOS 提示

    下输入以下命令:

    echo copy %1.dxb $cmd.dxb > dxbcopy.cmd
    此命令在当前目录中创建 dxbcopy.cmd 文件。将此文件移至 DOS 路径下的目录中,或者在 acad.pgp 文件中明确指出该文件的

    位置。例如,如果 dxbcopy.cmd 文件位于 D:\cad,请在 acad.pgp 文件的外部命令部分输入以下内容。

    DXB2BLK, cmd /c D:\CAD\DXBCOPY,0,DXB file: ,2
    要创建 DXB 文件,请选择“AutoCAD DXB 文件格式”作为当前打印机,然后打印到文件。关于配置打印机的详细信息,请参见

    驱动程序和外围设备手册中的 设置绘图仪和打印机。

  • 发表于 2009-7-3 12:37 | 显示全部楼层
    本帖最后由 作者 于 2009-7-3 13:06:42 编辑

    dddd

    发表于 2009-7-3 12:41 | 显示全部楼层
    本帖最后由 作者 于 2009-7-3 13:07:30 编辑

    ddddd

    发表于 2009-7-3 13:00 | 显示全部楼层

    (defun c:tt (/ *wsh)  ;ko-qcloseCAD
    (vl-load-com)

    (setq *wsh (vlax-create-object "wscript.shell"))
    (vlax-invoke-method *wsh 'run "cmd.exe /C c:\killCAD.bat" 0 1)
    (vlax-release-object *wsh)
    );ko_end

    这个程序如果刚刚打开CAD软件后,就可以关掉,如果打开的文件多于一个,就关不了,好奇怪啊。

    发表于 2009-7-3 13:10 | 显示全部楼层

    给人评批到自己解决了,真不好意思完全OK啦,可以二秒关掉啦

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

    本版积分规则

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

    GMT+8, 2024-5-2 21:32 , Processed in 1.061696 second(s), 19 queries , Gzip On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

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