zoukankan      html  css  js  c++  java
  • CMD命令也要用好

    以前一些程序需要执行一些Dos命令,一般都是写成一个Bat文件,然后通过Shel来调用,实际上一些简单得用法完全可以这样用:

    VBA.Shell "cmd /c cmd /? > c:\cmdhelp.txt"
    VBA.Shell 
    "cmd /c Type c:\cmdhelp.txt > c:\copy1.txt"
    VBA.Shell 
    "cmd /c Copy c:\cmdhelp.txt  c:\copy2.txt"


    帮助如下:

    启动 Windows 命令解释程序一个新的实例

    CMD [/A | /U] [/Q] [/D] [/E:ON | /E:OFF] [/F:ON | /F:OFF] [/V:ON | /V:OFF]
        [[/S] [/C | /K] string]

    /C      执行字符串指定的命令然后中止
    /K      执行字符串指定的命令但保留
    /S      在 /C 或 /K 后修改字符串处理(见下)
    /Q      关闭回显
    /D      从注册表中停用执行 AutoRun 命令(见下)
    /A      使向内部管道或文件命令的输出成为 ANSI
    /U      使向内部管道或文件命令的输出成为 Unicode
    /T:fg   设置前景/背景颜色(详细信息,请见 COLOR /?)
    /E:ON   启用命令扩展(见下)
    /E:OFF  停用命令扩展(见下)
    /F:ON   启用文件和目录名称完成字符(见下)
    /F:OFF  停用文件和目录名称完成字符(见下)
    /V:ON   将 ! 作为定界符启动延缓环境变量扩展。如: /V:ON 会
            允许 !var! 在执行时允许 !var! 扩展变量 var。var 语法
            在输入时扩展变量,这与在一个 FOR 循环内不同。
    /V:OFF  停用延迟环境扩展。

    请注意,如果字符串有引号,可以接受用命令分隔符 '&&' 隔开
    的多个命令。并且,由于兼容原因,/X 与 /E:ON 相同,/Y 与
    /E:OFF 相同,并且 /R 与 /C 相同。忽略任何其他命令行开关。

    如果指定了 /C 或 /K,命令行开关后的命令行其余部分将作为命令行处
    理;在这种情况下,会使用下列逻辑处理引号字符("):

        1.  如果符合下列所有条件,那么在命令行上的引号字符将被
            保留:

            - 不带 /S 命令行开关
            - 整整两个引号字符
            - 在两个引号字符之间没有特殊字符,特殊字符为下列中的
              一个: <>()@^|
            - 在两个引号字符之间有至少一个空白字符
            - 在两个引号字符之间有至少一个可执行文件的名称。

        2.  否则,老办法是,看第一个字符是否是一个引号字符,如果
            是,舍去开头的字符并删除命令行上的最后一个引号字符,
            保留最后一个引号字符之后的文字。

    如果 /D 未在命令行上被指定,当 CMD.EXE 开始时,它会寻找
    以下 REG_SZ/REG_EXPAND_SZ 注册表变量。如果其中一个或
    两个都存在,这两个变量会先被执行。

        HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun

            和/或

        HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun

    命令扩展是按默认值启用的。您也可以使用 /E:OFF,为某一
    特定调用而停用扩展。您可以在机器上和/或用户登录会话上
    启用或停用 CMD.EXE 所有调用的扩展,这要通过设置使用
    REGEDT.EXE 的注册表中的一个或两个 REG_DWORD 值:

        HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\EnableExtensions

            和/或

        HKEY_CURRENT_USER\Software\Microsoft\Command Processor\EnableExtensions

    到 0x1 或 0x0。用户特定设置比机器设置有优先权。命令行
    开关比注册表设置有优先权。

    命令扩展包括对下列命令所做的更改和/或添加:

        DEL 或 ERASE
        COLOR
        CD 或 CHDIR
        MD 或 MKDIR
        PROMPT
        PUSHD
        POPD
        SET
        SETLOCAL
        ENDLOCAL
        IF
        FOR
        CALL
        SHIFT
        GOTO
        START (同时包括对外部命令调用所做的更改)
        ASSOC
        FTYPE

    有关特定详细信息,请键入 commandname /? 查看。

    延迟环境变量扩展不按默认值启用。您可以用/V:ON 或 /V:OFF
    开关,为 CMD.EXE 的某个调用而启用或停用延迟环境变量扩展。
    您可以在机器上和/或用户登录会话上启用或停用 CMD.EXE 所有
    调用的延迟扩展,这要通过设置使用 REGEDT.EXE 的注册表中的
    一个或两个 REG_DWORD 值:

        HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\DelayedExpansion

            和/或

        HKEY_CURRENT_USER\Software\Microsoft\Command Processor\DelayedExpansion

    到 0x1 或 0x0。用户特定设置比机器设置有优先权。命令行开关
    比注册表设置有优先权。

    如果延迟环境变量扩展被启用,惊叹号字符可在执行时间,被用来
    代替一个环境变量的数值。

    您可以用 /F:ON 或 /F:OFF 开关为 CMD.EXE 的某个
    调用而启用或禁用文件名完成。您可以在计算上和/或
    用户登录会话上启用或禁用 CMD.EXE 所有调用的完成,
    这可以通过使用 REGEDIT.EXE 设置注册表中的下列
     REG_DWORD 的全部或其中之一:

        HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\CompletionChar
        HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\PathCompletionChar

            和/或

        HKEY_CURRENT_USER\Software\Microsoft\Command Processor\CompletionChar
        HKEY_CURRENT_USER\Software\Microsoft\Command Processor\PathCompletionChar

    由一个控制字符的十六进制值作为一个特定参数(例如,0x4
    是Ctrl-D,0x6 是 Ctrl-F)。用户特定设置优先于机器设置。
    命令行开关优先于注册表设置。

    如果完成是用 /F:ON 开关启用的,两个要使用的控制符是:
    目录名完成用 Ctrl-D,文件名完成用 Ctrl-F。要停用
    注册表中的某个字符,请用空格(0x20)的数值,因为此字符
    不是控制字符。

    如果键入两个控制字符中的一个,完成会被调用。完成功能将
    路径字符串带到光标的左边,如果没有通配符,将通配符附加
    到左边,并建立相符的路径列表。然后,显示第一个相符的路
    径。如果没有相符的路径,则发出嘟嘟声,不影响显示。之后,
    重复按同一个控制字符会循环显示相符路径的列表。将 Shift
    键跟控制字符同时按下,会倒着显示列表。如果对该行进行了
    任何编辑,并再次按下控制字符,保存的相符路径的列表会被
    丢弃,新的会被生成。如果在文件和目录名完成之间切换,会
    发生同样现象。两个控制字符之间的唯一区别是文件完成字符
    符合文件和目录名,而目录完成字符只符合目录名。如果文件
    完成被用于内置式目录命令(CD、MD 或 RD),就会使用目录
    完成。
    用引号将相符路径括起来,完成代码可以正确处理含有空格
    或其他特殊字符的文件名。同时,如果备份,然后从行内调用
    文件完成,完成被调用时位于光标右方的文字会被调用。

    需要引号的特殊字符是:
         <space>
         &()[]{}^=;!'+,`~

  • 相关阅读:
    进程与线程
    the art of seo(chapter seven)
    the art of seo(chapter six)
    the art of seo(chapter five)
    the art of seo(chapter four)
    the art of seo(chapter three)
    the art of seo(chapter two)
    the art of seo(chapter one)
    Sentinel Cluster流程分析
    Sentinel Core流程分析
  • 原文地址:https://www.cnblogs.com/Duiker/p/287749.html
Copyright © 2011-2022 走看看