当前位置:首页 > 我的程序 > 正文内容

windows 10 控制台命令壳的常规命令。

Peirre4年前 (2021-07-01)我的程序620

windows 10 和 linux 一样有一个控制台,最初也叫文字终端。

命令是 cmd.exe  在 windows xp 和 windows 2000 以前是 command.exe

经过了25年,没有什么太大的变化,增加了少数命令,还在挖掘中。

cmd.exe 分内部命令和外部命令。

内部命令是含在CMD.exe内的,只要运行了CMD.exe 这些命令都可执行。

cmd命令的运行方法是 windows 键加 R键,然后在运行栏中输入cmd.exe

然后路径要是:c:\windows\system32\ 这些命令才能全部运行。内部命令没有路径之说。

屏幕截图 2021-07-01 193326.PNG.jpg


屏幕截图 2021-07-01 193443.jpg

这样一个环境,我说的命令直接可以在光标处输入字符命令。

ASSOC 命令

显示或修改文件扩展名关联

ASSOC [.ext[=[fileType]]]

  .ext      指定跟文件类型关联的文件扩展名

  fileType  指定跟文件扩展名关联的文件类型

键入 ASSOC 而不带参数,显示当前文件关联。如果只用文件扩展

名调用 ASSOC,则显示那个文件扩展名的当前文件关联。如果不为

文件类型指定任何参数,命令会删除文件扩展名的关联。


ATTRIB 命令

显示或更改文件属性。

ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] [+O | -O] [+I | -I] [+X | -X] [+P | -P] [+U | -U]

       [drive:][path][filename] [/S [/D]] [/L]

  +   设置属性。

  -   清除属性。

  R   只读文件属性。

  A   存档文件属性。

  S   系统文件属性。

  H   隐藏文件属性。

  O   脱机属性。

  I   无内容索引文件属性。

   X   无清理文件属性。

  V   完整性属性。

  P   固定属性。

  U   非固定属性。

  [drive:][path][filename]

      指定属性要处理的文件。

  /S  处理当前文件夹及其所有子文件夹中

      的匹配文件。

  /D  也处理文件夹。

  /L  处理符号链接和

      符号链接目标的属性


CALL 命令

从批处理程序调用另一个批处理程序。

CALL [drive:][path]filename [batch-parameters]

  batch-parameters   指定批处理程序所需的命令行信息。

如果命令扩展被启用,CALL 会如下改变:

CALL 命令现在将卷标当作 CALL 的目标接受。语法是:

    CALL:label arguments

一个新的批文件上下文由指定的参数所创建,控制在卷标被指定

后传递到语句。你必须通过达到批脚本文件末两次来 "exit" 两次。

第一次读到文件末时,控制会回到 CALL 语句的紧后面。第二次

会退出批脚本。键入 GOTO /?,参看 GOTO :EOF 扩展的描述,

此描述允许你从一个批脚本返回。

另外,批脚本文本参数参照(%0、%1、等等)已如下改变:

     批脚本里的 %* 指出所有的参数(如 %1 %2 %3 %4 %5 ...)

     批参数(%n)的替代已被增强。你可以使用以下语法:

         %~1         - 删除引号("),扩展 %1

         %~f1        - 将 %1 扩展到一个完全合格的路径名

         %~d1        - 仅将 %1 扩展到一个驱动器号

         %~p1        - 仅将 %1 扩展到一个路径

         %~n1        - 仅将 %1 扩展到一个文件名

         %~x1        - 仅将 %1 扩展到一个文件扩展名

         %~s1        - 扩展的路径只含有短名

         %~a1        - 将 %1 扩展到文件属性

         %~t1        - 将 %1 扩展到文件的日期/时间

         %~z1        - 将 %1 扩展到文件的大小

         %~$PATH:1   - 查找列在 PATH 环境变量的目录,并将 %1

                       扩展到找到的第一个完全合格的名称。如果

                       环境变量名未被定义,或者没有找到文件,

                       此修改符会扩展到空字符串

    可以组合修改符来取得多重结果:

        %~dp1       - 只将 %1 扩展到驱动器号和路径

        %~nx1       - 只将 %1 扩展到文件名和扩展名

        %~dp$PATH:1 - 在列在 PATH 环境变量中的目录里查找 %1,

                      并扩展到找到的第一个文件的驱动器号和路径。

        %~ftza1     - 将 %1 扩展到类似 DIR 的输出行。

    在上面的例子中,%1 和 PATH 可以被其他有效数值替换。

    %~ 语法被一个有效参数号码终止。%~ 修定符不能跟 %*

    使用


CD 命令

显示当前目录名或改变当前目录。

CHDIR [/D] [drive:][path]

CHDIR [..]

CD [/D] [drive:][path]

CD [..]

  ..   指定要改成父目录。

键入 CD drive: 显示指定驱动器中的当前目录。

不带参数只键入 CD,则显示当前驱动器和目录。

使用 /D 开关,除了改变驱动器的当前目录之外,

还可改变当前驱动器。

如果命令扩展被启用,CHDIR 会如下改变:

当前的目录字符串会被转换成使用磁盘名上的大小写。所以,

如果磁盘上的大小写如此,CD C:\TEMP 会将当前目录设为

C:\Temp。

CHDIR 命令不把空格当作分隔符,因此有可能将目录名改为一个

带有空格但不带有引号的子目录名。例如:

     cd \winnt\profiles\username\programs\start menu

与下列相同:  

     cd "\winnt\profiles\username\programs\start menu" 

在扩展停用的情况下,你必须键入以上命令。


CHCP 命令 [外部命令]

显示或设置活动代码页编号。

CHCP [nnn]

  nnn   指定代码页编号。

不带参数键入 CHCP 以显示活动代码页编号。


检查磁盘并显示状态报告。


CHKDSK 命令 [外部命令]

CHKDSK [volume[[path]filename]]] [/F] [/V] [/R] [/X] [/I] [/C] [/L[:size]] [/B] [/scan] [/spotfix]

  volume              指定驱动器号(后面跟一个冒号)、

                      装入点或卷名。

  filename            仅 FAT/FAT32: 指定要检查

                      碎片的文件。

  /F                  修复磁盘上的错误。

  /V                  在 FAT/FAT32 上: 显示磁盘上每个文件的

                      完整路径和名称。

                  在 NTFS 上: 显示清理消息(如果有)。

  /R                  查找坏扇区并恢复可读信息

                      (未指定 /scan 时,隐含 /F)。

  /L:size             仅 NTFS: 将日志文件大小更改为指定

                      的 KB 数。如果未指定大小,则显示

                      当前大小。

  /X                  如果必要,则先强制卸除卷。

                       该卷的所有打开的句柄都将无效

                      (隐含 /F)。

  /I                  仅 NTFS: 对索引项进行强度较小的

                      检查。

  /C                  仅 NTFS: 跳过文件夹结构内的

                      循环检查。

  /B                  仅 NTFS: 重新评估该卷上的坏簇

                      (隐含 /R)

  /scan               仅 NTFS: 在卷上运行联机扫描

  /forceofflinefix    仅 NTFS: (必须与 "/scan" 一起使用)

                      跳过所有联机修复;找到的所有故障都

                      排队等待脱机修复(即 "chkdsk /spotfix")。

  /perf               仅 NTFS: (必须与 "/scan" 一起使用)

                      使用更多系统资源尽快完成

                      扫描。这可能会对系统中运行的其他任务的性能

                      造成负面影响。

  /spotfix            仅 NTFS: 在卷上运行点修复

  /sdcleanup          仅 NTFS: 回收不需要的安全描述符

                      数据(隐含 /F)。

  /offlinescanandfix  在卷上运行脱机扫描并进行修复。

  /freeorphanedchains 仅 FAT/FAT32/exFAT: 释放所有孤立的簇链

                      而不恢复其内容。

  /markclean          仅 FAT/FAT32/exFAT: 如果未检测到损坏,则将卷

                      标记为干净,即使未指定 /F 也是如此。

/I 或 /C 开关通过跳过对卷的某些检查,

来减少运行 Chkdsk 所需的时间。


CHOICE 命令 [外部命令]

CHOICE [/C choices] [/N] [/CS] [/T timeout /D choice] [/M text]

描述:

    该工具允许用户从选择列表选择一个项目并返回所选项目的索引。

参数列表:

   /C    choices       指定要创建的选项列表。默认列表是 "YN"。

   /N                  在提示符中隐藏选项列表。提示前面的消息得到显示,

                       选项依旧处于启用状态。

   /CS                 允许选择分大小写的选项。在默认情况下,这个工具

                       是不分大小写的。

   /T    timeout       做出默认选择之前,暂停的秒数。可接受的值是从 0 

                       到 9999。如果指定了 0,就不会有暂停,默认选项

                       会得到选择。

   /D    choice        在 nnnn 秒之后指定默认选项。字符必须在用 /C 选

                       项指定的一组选择中; 同时,必须用 /T 指定 nnnn。

   /M    text          指定提示之前要显示的消息。如果没有指定,工具只

                       显示提示。

   /?                  显示此帮助消息。

   注意:

   ERRORLEVEL 环境变量被设置为从选择集选择的键索引。列出的第一个选

   择返回 1,第二个选择返回 2,等等。如果用户按的键不是有效的选择,

   该工具会发出警告响声。如果该工具检测到错误状态,它会返回 255 的

   ERRORLEVEL 值。如果用户按 Ctrl+Break 或 Ctrl+C 键,该工具会返回 0 

   的 ERRORLEVEL 值。在一个批程序中使用 ERRORLEVEL 参数时,将参数降

   序排列。

示例:

   CHOICE /?

   CHOICE /C YNC /M "确认请按 Y,否请按 N,或者取消请按 C。"

   CHOICE /T 10 /C ync /CS /D y 

   CHOICE /C ab /M "选项 1 请选择 a,选项 2 请选择 b。"

   CHOICE /C ab /N /M "选项 1 请选择 a,选项 2 请选择 b。"


CMD 命令 [可以重复加载 exit 退出]

启动 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 语法会在输入时

        扩展变量,这与在一个 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 所有调用的扩展,这要通过设置使用

REGEDIT.EXE 的注册表中的一个或两个 REG_DWORD 值:

    HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\EnableExtensions

        和/或

    HKEY_CURRENT_USER\Software\Microsoft\Command Processor\EnableExtensions

到 0x1 或 0x0。用户特定设置

比机器设置有优先权。命令行

开关比注册表设置有优先权。

在批处理文件中,SETLOCAL ENABLEEXTENSIONS 或 DISABLEEXTENSIONS 参数

比 /E:ON 或 /E:OFF 开关有优先权。请参阅 SETLOCAL /? 获取详细信息。

命令扩展包括对下列命令所做的

更改和/或添加:

    DEL or ERASE

    COLOR

    CD or CHDIR

    MD or MKDIR

    PROMPT

    PUSHD

    POPD

    SET

    SETLOCAL

    ENDLOCAL

    IF

    FOR

    CALL

    SHIFT

    GOTO

    START (同时包括对外部命令调用所做的更改)

    ASSOC

    FTYPE

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

延迟环境变量扩展不按默认值启用。你

可以用/V:ON 或 /V:OFF 开关,为 CMD.EXE 的某个调用而

启用或停用延迟环境变量扩展。你

可以在机器上和/或用户登录会话上启用或停用 CMD.EXE 所有

调用的延迟扩展,这要通过设置使用 REGEDIT.EXE 的注册表中的

一个或两个 REG_DWORD 值:

    HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\DelayedExpansion

        和/或

    HKEY_CURRENT_USER\Software\Microsoft\Command Processor\DelayedExpansion

到 0x1 或 0x0。用户特定设置

比机器设置有优先权。命令行开关

比注册表设置有优先权。

在批处理文件中,SETLOCAL ENABLEDELAYEDEXPANSION 或 DISABLEDELAYEDEXPANSION

参数比 /V:ON 或 /V:OFF 开关有优先权。请参阅 SETLOCAL /? 

获取详细信息。

如果延迟环境变量扩展被启用,

惊叹号字符可在执行时间被用来

代替一个环境变量的数值。

你可以用 /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>

 &()[]{}^=;!'+,`~


COLOR 命令

设置默认的控制台前景和背景颜色。

COLOR [attr]

  attr        指定控制台输出的颜色属性。

颜色属性由两个十六进制数字指定 -- 第一个

对应于背景,第二个对应于前景。每个数字

可以为以下任何值:

    0 = 黑色       8 = 灰色

    1 = 蓝色       9 = 淡蓝色

    2 = 绿色       A = 淡绿色

    3 = 浅绿色     B = 淡浅绿色

    4 = 红色       C = 淡红色

    5 = 紫色       D = 淡紫色

    6 = 黄色       E = 淡黄色

    7 = 白色       F = 亮白色

如果没有给定任何参数,此命令会将颜色还原到 CMD.EXE 启动时

的颜色。这个值来自当前控制台

窗口、/T 命令行开关或 DefaultColor 注册表

值。

如果尝试使用相同的

前景和背景颜色来执行

 COLOR 命令,COLOR 命令会将 ERRORLEVEL 设置为 1。

示例: "COLOR fc" 在亮白色上产生淡红色


DEL 命令

删除一个或多个文件。

DEL [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names

ERASE [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names

  names         指定一个或多个文件或者目录列表。

                通配符可用来删除多个文件。

                如果指定了一个目录,该目录中的所

                有文件都会被删除。

  /P            删除每一个文件之前提示确认。

  /F            强制删除只读文件。

  /S            删除所有子目录中的指定的文件。

  /Q            安静模式。删除全局通配符时,不要求确认

  /A            根据属性选择要删除的文件

  属性          R  只读文件            S  系统文件

                H  隐藏文件            A  准备存档的文件

                I  无内容索引文件      L  重新分析点

                O  脱机文件            -  表示“否”的前缀

如果命令扩展被启用,DEL 和 ERASE 更改如下:

/S 开关的显示句法会颠倒,即只显示已经

删除的文件,而不显示找不到的文件。


DPATH [以前的命令名是APPEEND!]

允许程序象在当前目录中那样打开指定目录中的数据文件。

APPEND [[drive:]path[;...]] [/X[:ON | :OFF]] [/PATH:ON | /PATH:OFF] [/E]

APPEND ;

  [drive:]path 指定要附加的驱动器和目录。

  /X:ON        用附加的目录用于文件搜索和应用程序执行。

  /X:OFF       将附加的目录仅用于打开文件的请求。/X:OFF 为默认

               设置。

  /PATH:ON     将附加的目录用于已经指定路径的文件请求。

               /PATH:ON 为默认设置。

  /PATH:OFF    关闭 /PATH:ON 的效果。

  /E           在名为 APPEND 环境变量中存储一份附加目录列表。/E

               只能在系统启动后第一次使用 APPEND 时使用。

键入 APPEND ; 来清除附加目录列表。

键入 APPEND 而不带参数来显示这个附加目录列表。


ECHO 命令

显示消息,或者启用或关闭命令回显。

  ECHO [ON | OFF]

  ECHO [message]

若要显示当前回显设置,请键入不带参数的 ECHO。


ENDLOCAL 命令

结束批处理文件中环境改动的本地化操作。在执行ENDLOCAL 之后

所做的环境改动不再仅限于批处理文件。批处理文件结束后,

原先的设置无法还原。

ENDLOCAL

如果命令扩展被启用,ENDLOCAL 会如下改变:

如果相应的 SETLOCAL 用新的 ENABLEEXTENSIONS 或

DISABLEEXTENSIONS 选项启用或停用了命令扩展,那么,在 

ENDLOCAL 之后,命令扩展的启用/停用状态会还原到执行

相应的 SETLOCAL 命令前的状态。


FOR 命令

对一组文件中的每一个文件执行某个特定命令。

FOR %variable IN (set) DO command [command-parameters]

  %variable  指定一个单一字母可替换的参数。

  (set)      指定一个或一组文件。可以使用通配符。

  command    指定对每个文件执行的命令。

  command-parameters

             为特定命令指定参数或命令行开关。

在批处理程序中使用 FOR 命令时,指定变量请使用 %%variable 

而不要用 %variable。变量名称是区分大小写的,所以 %i 不同于 %I.

如果启用命令扩展,则会支持下列 FOR 命令的其他格式:

FOR /D %variable IN (set) DO command [command-parameters]

    如果集中包含通配符,则指定与目录名匹配,而不与文件名匹配。

FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]

    检查以 [drive:]path 为根的目录树,指向每个目录中的 FOR 语句。

    如果在 /R 后没有指定目录规范,则使用当前目录。如果集仅为一个单点(.)字符,

    则枚举该目录树。

FOR /L %variable IN (start,step,end) DO command [command-parameters]

    该集表示以增量形式从开始到结束的一个数字序列。因此,(1,1,5)将产生序列

    1 2 3 4 5,(5,-1,1)将产生序列(5 4 3 2 1)

FOR /F ["options"] %variable IN (file-set) DO command [command-parameters]

FOR /F ["options"] %variable IN ("string") DO command [command-parameters]

FOR /F ["options"] %variable IN ('command') DO command [command-parameters]

    或者,如果有 usebackq 选项:

FOR /F ["options"] %variable IN (file-set) DO command [command-parameters]

FOR /F ["options"] %variable IN ("string") DO command [command-parameters]

FOR /F ["options"] %variable IN ('command') DO command [command-parameters]

    fileset 为一个或多个文件名。继续到 fileset 中的下一个文件之前,

    每份文件都被打开、读取并经过处理。处理包括读取文件,将其分成一行行的文字,

    然后将每行解析成零或更多的符号。然后用已找到的符号字符串变量值调用 For 循环。

    以默认方式,/F 通过每个文件的每一行中分开的第一个空白符号。跳过空白行。

    你可通过指定可选 "options" 参数替代默认解析操作。这个带引号的字符串包括一个

    或多个指定不同解析选项的关键字。这些关键字为:

        eol=c           - 指一个行注释字符的结尾(就一个)

        skip=n          - 指在文件开始时忽略的行数。

        delims=xxx      - 指分隔符集。这个替换了空格和制表符的

                          默认分隔符集。

        tokens=x,y,m-n  - 指每行的哪一个符号被传递到每个迭代

                          的 for 本身。这会导致额外变量名称的分配。m-n

                          格式为一个范围。通过 nth 符号指定 mth。如果

                          符号字符串中的最后一个字符星号,

                          那么额外的变量将在最后一个符号解析之后

                          分配并接受行的保留文本。

        usebackq        - 指定新语法已在下类情况中使用:

                          在作为命令执行一个后引号的字符串并且一个单

                          引号字符为文字字符串命令并允许在 file-set

                          中使用双引号扩起文件名称。

    某些范例可能有助:

FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do @echo %i %j %k

    会分析 myfile.txt 中的每一行,忽略以分号打头的那些行,将

    每行中的第二个和第三个符号传递给 for 函数体,用逗号和/或

    空格分隔符号。请注意,此 for 函数体的语句引用 %i 来

    获得第二个符号,引用 %j 来获得第三个符号,引用 %k

    来获得第三个符号后的所有剩余符号。对于带有空格的文件

    名,你需要用双引号将文件名括起来。为了用这种方式来使

    用双引号,还需要使用 usebackq 选项,否则,双引号会

    被理解成是用作定义某个要分析的字符串的。

    %i 在 for 语句中显式声明,%j 和 %k 是通过

    tokens= 选项隐式声明的。可以通过 tokens= 一行

    指定最多 26 个符号,只要不试图声明一个高于字母 "z" 或

    "Z" 的变量。请记住,FOR 变量是单一字母、分大小写和全局的变量;

    而且,不能同时使用超过 52 个。

    还可以在相邻字符串上使用 FOR /F 分析逻辑,方法是,

    用单引号将括号之间的 file-set 括起来。这样,该字符

    串会被当作一个文件中的一个单一输入行进行解析。

    最后,可以用 FOR /F 命令来分析命令的输出。方法是,将

    括号之间的 file-set 变成一个反括字符串。该字符串会

    被当作命令行,传递到一个子 CMD.EXE,其输出会被捕获到

    内存中,并被当作文件分析。如以下例子所示:

      FOR /F "usebackq delims==" %i IN (`set`) DO @echo %i

    会枚举当前环境中的环境变量名称。

另外,FOR 变量参照的替换已被增强。你现在可以使用下列

选项语法:

     %~I          - 删除任何引号("),扩展 %I

     %~fI        - 将 %I 扩展到一个完全合格的路径名

     %~dI        - 仅将 %I 扩展到一个驱动器号

     %~pI        - 仅将 %I 扩展到一个路径

     %~nI        - 仅将 %I 扩展到一个文件名

     %~xI        - 仅将 %I 扩展到一个文件扩展名

     %~sI        - 扩展的路径只含有短名

     %~aI        - 将 %I 扩展到文件的文件属性

     %~tI        - 将 %I 扩展到文件的日期/时间

     %~zI        - 将 %I 扩展到文件的大小

     %~$PATH:I   - 查找列在路径环境变量的目录,并将 %I 扩展

                   到找到的第一个完全合格的名称。如果环境变量名

                   未被定义,或者没有找到文件,此组合键会扩展到

                   空字符串

可以组合修饰符来得到多重结果:

     %~dpI       - 仅将 %I 扩展到一个驱动器号和路径

     %~nxI       - 仅将 %I 扩展到一个文件名和扩展名

     %~fsI       - 仅将 %I 扩展到一个带有短名的完整路径名

     %~dp$PATH:I - 搜索列在路径环境变量的目录,并将 %I 扩展

                   到找到的第一个驱动器号和路径。

     %~ftzaI     - 将 %I 扩展到类似输出线路的 DIR

在以上例子中,%I 和 PATH 可用其他有效数值代替。%~ 语法

用一个有效的 FOR 变量名终止。选取类似 %I 的大写变量名

比较易读,而且避免与不分大小写的组合键混淆。


FTYPE 命令

显示或修改用在文件扩展名关联中的文件类型

FTYPE [fileType[=[openCommandString]]]

  fileType  指定要检查或改变的文件类型

  openCommandString 指定调用这类文件时要使用的开放式命令。

键入 FTYPE 而不带参数来显示当前有定义的开放式命令字符串的

文件类型。FTYPE 仅用一个文件类型启用时,它显示那个文件类

型目前的开放式命令字符串。如果不为开放式命令字符串指定,

FTYPE 命令将删除那个文件类型的开放式命令字符串。在一个

开放式命令字符串之内,命令字符串 %0 或 %1 被通过关联调用

的文件名所代替。%* 得到所有的参数,%2 得到第一个参数,

%3 得到第二个,等等。%~n 得到其余所有以 nth 参数打头的

参数;n 可以是从 2 到 9 的数字。例如:

    ASSOC .pl=PerlScript

    FTYPE PerlScript=perl.exe %1 %*

允许你启用以下 Perl 脚本:

    script.pl 1 2 3

如果不想键入扩展名,则键入以下字符串:

    set PATHEXT=.pl;%PATHEXT%

被启动的脚本如下:

    script 1 2 3


GOTO 命令

将 cmd.exe 定向到批处理程序中带标签的行。

GOTO label

  label   指定批处理程序中用作标签的文字字符串。

标签必须单独一行,并且以冒号打头。

如果命令扩展被启用,GOTO 会如下改变:

GOTO 命令现在接受目标标签 :EOF,这个标签将控制转移到当前

批脚本文件的结尾。不定义就退出批脚本文件,这是一个容易的

办法。有关能使该功能有用的 CALL 命令的扩展描述,请键入

CALL /?。


IF 命令

执行批处理程序中的条件处理。

IF [NOT] ERRORLEVEL number command

IF [NOT] string1==string2 command

IF [NOT] EXIST filename command

  NOT               指定只有条件为 false 的情况下,Windows 才

                    应该执行该命令。

  ERRORLEVEL number 如果最后运行的程序返回一个等于或大于

                    指定数字的退出代码,指定条件为 true。

  string1==string2  如果指定的文字字符串匹配,指定条件为 true。

  EXIST filename    如果指定的文件名存在,指定条件为 true。

  command           如果符合条件,指定要执行的命令。如果指定的

                    条件为 FALSE,命令后可跟 ELSE 命令,该命令将 

                    在 ELSE 关键字之后执行该命令。

ELSE 子句必须出现在同一行上的 IF 之后。例如:

    IF EXIST filename. (

        del filename.

    ) ELSE (

        echo filename. missing.

    )

由于 del 命令需要用新的一行终止,因此以下子句不会有效:

IF EXIST filename. del filename. ELSE echo filename. missing

由于 ELSE 命令必须与 IF 命令的尾端在同一行上,以下子句也

不会有效:

    IF EXIST filename. del filename.

    ELSE echo filename. missing

如果都放在同一行上,以下子句有效:

    IF EXIST filename. (del filename.) ELSE echo filename. missing

如果命令扩展被启用,IF 会如下改变:

    IF [/I] string1 compare-op string2 command

    IF CMDEXTVERSION number command

    IF DEFINED variable command

其中, compare-op 可以是:

    EQU - 等于

    NEQ - 不等于

    LSS - 小于

    LEQ - 小于或等于

    GTR - 大于

    GEQ - 大于或等于

而 /I 开关(如果指定)说明要进行的字符串比较不分大小写。

/I 开关可以用于 IF 的 string1==string2 的形式上。这些

比较都是通用的;原因是,如果 string1 和 string2 都是

由数字组成的,字符串会被转换成数字,进行数字比较。

CMDEXTVERSION 条件的作用跟 ERRORLEVEL 的一样,除了它

是在跟与命令扩展有关联的内部版本号比较。第一个版本

是 1。每次对命令扩展有相当大的增强时,版本号会增加一个。

命令扩展被停用时,CMDEXTVERSION 条件不是真的。

如果已定义环境变量,DEFINED 条件的作用跟 EXIST 的一样,

除了它取得一个环境变量,返回的结果是 true。

如果没有名为 ERRORLEVEL 的环境变量,%ERRORLEVEL%

会扩充为 ERROLEVEL 当前数值的字符串表达式;否则,你会得到

其数值。运行程序后,以下语句说明 ERRORLEVEL 的用法:

    goto answer%ERRORLEVEL%

    :answer0

    echo Program had return code 0

    :answer1

    echo Program had return code 1

你也可以使用以上的数字比较:

    IF %ERRORLEVEL% LEQ 1 goto okay

如果没有名为 CMDCMDLINE 的环境变量,%CMDCMDLINE%

将在 CMD.EXE 进行任何处理前扩充为传递给 CMD.EXE 的原始

命令行;否则,你会得到其数值。

如果没有名为 CMDEXTVERSION 的环境变量,

%CMDEXTVERSION% 会扩充为 CMDEXTVERSION 当前数值的

字串符表达式;否则,你会得到其数值。


MD 命令

创建目录。

MKDIR [drive:]path

MD [drive:]path

如果命令扩展被启用,MKDIR 会如下改变:

如果需要,MKDIR 会在路径中创建中级目录。例如: 假设 \a 不

存在,那么:

    mkdir \a\b\c\d

与:

    mkdir \a

    chdir \a

    mkdir b

    chdir b

    mkdir c

    chdir c

    mkdir d

相同。如果扩展被停用,则需要键入 mkdir \a\b\c\d。


MODE 命令 [外部命令]

配置系统设备。

串行端口:          MODE COMm[:] [BAUD=b] [PARITY=p] [DATA=d] [STOP=s]

                                [to=on|off] [xon=on|off] [odsr=on|off]

                                [octs=on|off] [dtr=on|off|hs]

                                [rts=on|off|hs|tg] [idsr=on|off]

设备状态:          MODE [device] [/STATUS]

打印重定向:        MODE LPTn[:]=COMm[:]

选择代码页:        MODE CON[:] CP SELECT=yyy

代码页状态:        MODE CON[:] CP [/STATUS]

显示模式:          MODE CON[:] [COLS=c] [LINES=n]

击键率:            MODE CON[:] [RATE=r DELAY=d]


MORE 命令

逐屏显示输出。

MORE [/E [/C] [/P] [/S] [/Tn] [+n]] < [drive:][path]filename

command-name | MORE [/E [/C] [/P] [/S] [/Tn] [+n]]

MORE /E [/C] [/P] [/S] [/Tn] [+n] [files]

 [drive:][path]filename 指定要逐屏显示

的文件。

command-name 指定要显示其

输出的命令。

 /E 启用扩展功能

 /C 显示页面前先清除屏幕

/P 扩展 FormFeed 字符

/S 将多个空白行缩成一行

/Tn 将制表符扩展为 n 个空格(默认值为 8)

开关可以出现在 MORE 环境变量中。

+n 从第 n 行开始显示第一个文件

要显示的文件列表。使用空格分隔

列表中的文件。

如果已启用扩展功能,则在出现 More 提示时

接受下列命令:

 P n 显示下 n 行

S n 跳过下 n 行

F 显示下个文件

Q 退出

 = 显示行号

? 显示帮助行

<space>显示下一页

<ret>显示下一行


PATH 命令

为可执行文件显示或设置一个搜索路径。

PATH [[drive:]path[;...][;%PATH%]

PATH ;

键入 PATH ; 清除所有搜索路径设置并指示 cmd.exe 只在当前

目录中搜索。

键入 PATH 但不加参数,显示当前路径。

将 %PATH% 包括在新的路径设置中会将旧路径附加到新设置。


POPD 命令

更改到 PUSHD 命令存储的目录。

POPD

如果命令扩展被启用,从推目录堆栈 POPD 驱动器时,POPD

命令会删除 PUSHD 创建的临时驱动器号。


PROMPT 命令

更改 cmd.exe 命令提示符。

PROMPT [text]

  text    指定新的命令提示符。

提示符可以由普通字符及下列特殊代码组成:

  $A   & (与号)

  $B   | (坚线)

  $C   ( (左括号)

  $D   当前日期

  $E   转义码(ASCII 码 27)

  $F   ) (右括号)

  $G   > (大于号)

  $H   Backspace (删除前一个字符)

  $L   < (小于号)

  $N   当前驱动器

  $P   当前驱动器及路径

  $Q   = (等号)

  $S     (空格)

  $T   当前时间

  $V   Windows 版本号

  $_   回车换行符

  $$   $ (美元符号)

如果命令扩展被启用,PROMPT 命令会支持下列格式化字符:

  $+   根据 PUSHD 目录堆栈的深度,零个或零个以上加号(+)字符,

       一个推的层一个字符。

  $M   如果当前驱动器不是网络驱动器,显示跟当前驱动器号或

       空字符串有关联的远程名。


PUSHD 命令

保存当前目录以供 POPD 命令使用,然后改到指定的目录。

PUSHD [path | ..]

  path        指定要成为当前目录的目录。

如果命令扩展被启用,除了一般驱动器号和路径,PUSHD 

命令还接受网络路径。如果指定了网络路径,PUSHD 将创建一个

指向指定网络资源的临时驱动器号,然后再用刚定义的驱动器

号更改当前的驱动器和目录。可以从 Z: 往下分配临时驱动器

号,使用找到的第一个没有用过的驱动器号。


REM 命令

在批处理文件或 CONFIG.SYS 里加上注解或说明。

REM [comment]


SET 命令

显示、设置或删除 cmd.exe 环境变量。

SET [variable=[string]]

  variable  指定环境变量名。

  string    指定要指派给变量的一系列字符串。

要显示当前环境变量,键入不带参数的 SET。

如果命令扩展被启用,SET 会如下改变:

可仅用一个变量激活 SET 命令,等号或值不显示所有前缀匹配

SET 命令已使用的名称的所有变量的值。例如:

    SET P

会显示所有以字母 P 打头的变量

如果在当前环境中找不到该变量名称,SET 命令将把 ERRORLEVEL

设置成 1。

SET 命令不允许变量名含有等号。

在 SET 命令中添加了两个新命令行开关:

    SET /A expression

    SET /P variable=[promptString]

/A 命令行开关指定等号右边的字符串为被评估的数字表达式。该表达式

评估器很简单并以递减的优先权顺序支持下列操作:

    ()                  - 分组

    ! ~ -               - 一元运算符

    * / %               - 算数运算符

    + -                 - 算数运算符

    << >>               - 逻辑移位

    &                   - 按位“与”

    ^                   - 按位“异”

    |                   - 按位“或”

    = *= /= %= += -=    - 赋值

      &= ^= |= <<= >>=

    ,                   - 表达式分隔符

如果你使用任何逻辑或取余操作符, 你需要将表达式字符串用

引号扩起来。在表达式中的任何非数字字符串键作为环境变量

名称,这些环境变量名称的值已在使用前转换成数字。如果指定

了一个环境变量名称,但未在当前环境中定义,那么值将被定为

零。这使你可以使用环境变量值做计算而不用键入那些 % 符号

来得到它们的值。如果 SET /A 在命令脚本外的命令行执行的,

那么它显示该表达式的最后值。该分配的操作符在分配的操作符

左边需要一个环境变量名称。除十六进制有 0x 前缀,八进制

有 0 前缀的,数字值为十进位数字。因此,0x12 与 18 和 022 

相同。请注意八进制公式可能很容易搞混: 08 和 09 是无效的数字,

因为 8 和 9 不是有效的八进制位数。(& )

/P 命令行开关允许将变量数值设成用户输入的一行输入。读取输入

行之前,显示指定的 promptString。promptString 可以是空的。

环境变量替换已如下增强:

    %PATH:str1=str2%

会扩展 PATH 环境变量,用 "str2" 代替扩展结果中的每个 "str1"。

要有效地从扩展结果中删除所有的 "str1","str2" 可以是空的。

"str1" 可以以星号打头;在这种情况下,"str1" 会从扩展结果的

开始到 str1 剩余部分第一次出现的地方,都一直保持相配。

也可以为扩展名指定子字符串。

    %PATH:~10,5%

会扩展 PATH 环境变量,然后只使用在扩展结果中从第 11 个(偏

移量 10)字符开始的五个字符。如果没有指定长度,则采用默认

值,即变量数值的余数。如果两个数字(偏移量和长度)都是负数,

使用的数字则是环境变量数值长度加上指定的偏移量或长度。

    %PATH:~-10%

会提取 PATH 变量的最后十个字符。

    %PATH:~0,-2%

会提取 PATH 变量的所有字符,除了最后两个。

终于添加了延迟环境变量扩充的支持。

该支持总是按默认值被停用,但也可以

通过 CMD.EXE 的 /V 命令行开关而被启用/停用。请参阅 CMD /?

考虑到读取一行文本时所遇到的目前扩充的限制时,延迟环境

变量扩充是很有用的,而不是执行的时候。

以下例子

说明直接变量扩充的问题:

 set VAR=before

 if "%VAR%" == "before" (

set VAR=after

 if "%VAR%" == "after" @echo If you see this, it worked )

不会显示消息,因为在读到第一个 IF 语句时,BOTH IF 语句中的 %VAR% 会被代替;

原因是: 它包含 IF 的文体

,IF 是一个复合语句。所以,

复合语句中的 IF 实际上是在比较 "before"

和"after",这两者永远不会相等。同样,以下这个例子

也不会达到预期效果:

 set LIST=

 for% i in (*) do set LIST=%LIST%%i

 echo%LIST%

 原因是,它不会在目前的目录中建立一个文件列表,

而只是将LIST 变量设成找到的最后一个文件。

这也是因为 %LIST% 在

FOR 语句被读取时,只被扩充了一次;而且,那时的 LIST 变量是空的。

因此,我们真正执行的 FOR 循环是:

 for% i in (*) do set LIST= %i

这个循环继续将 LIST 设成找到的最后一个文件。

延迟环境变量扩充允许你使用一个不同的

字符(惊叹号)在

执行时间扩充环境变量。如果延迟的变量扩充被启用,

可以将上面例子写成以下所示,以达到预期效果:

 set VAR=before 

if "%VAR%" == "before" (

 set VAR=after

 if "!VAR!" == "after" @echo If you see this, it worked

 )

 set LIST=

 for% i in (*) do set LIST=!LIST! %i

 echo %LIST%

如果命令扩展被启用,有几个动态环境变量可以被扩展,但不会出现在 SET 显示的变

量列表中。每次变量数值被扩展时,这些变量数值都会被动态计算。如果用户用这些

名称中任何一个明确定义变量,那个定义会替代下面描述的动态定义:

%CD% - 扩展到当前目录字符串。

%DATE% - 用跟 DATE 命令同样的格式扩展到当前日期。

%TIME% - 用跟 TIME 命令同样的格式扩展到当前时间。

%RANDOM% - 扩展到 0 和 32767 之间的任意十进制数字。

%ERRORLEVEL% - 扩展到当前 ERRORLEVEL 数值。

%CMDEXTVERSION% - 扩展到当前命令处理器扩展版本号。

%CMDCMDLINE% - 扩展到调用命令处理器的原始命令行。

%HIGHESTNUMANODENUMBER% - 扩展到此计算机上的最高 NUMA 节点号。


SETLOCAL 命令

开始批处理文件中环境改动的本地化操作。在执行 SETLOCAL 之后

所做的环境改动只限于批处理文件。要还原原先的设置,必须执

行 ENDLOCAL。达到批处理文件结尾时,对于该批处理文件的每个

尚未执行的 SETLOCAL 命令,都会有一个隐含的 ENDLOCAL 被执行。

SETLOCAL

如果启用命令扩展,则 SETLOCAL 更改如下:

SETLOCAL 批命令现在可以接受可选参数:

        ENABLEEXTENSIONS / DISABLEEXTENSIONS

            启用或禁用命令处理器扩展。这些

            参数比 CMD /E:ON 或 /E:OFF

            开关有优先权。请参阅 CMD /? 获取详细信息。

        ENABLEDELAYEDEXPANSION / DISABLEDELAYEDEXPANSION

            启用或禁用延缓环境变量

            扩展。这些参数比 CMD

            /V:ON 或 /V:OFF 开关有优先权。请参阅 CMD /? 获取详细信息。

无论在 SETLOCAL 命令之前的设置是什么,这些修改会一直

生效,直到出现相应的 ENDLOCAL 命令。

在给定参数的情况下,

SETLOCAL 命令将设置 ERRORLEVEL 值。如果给定两个有效参数中的一个,另一个未给定,

则该值为零。

通过以下方法,你可以在批脚本中

使用此项来确定扩展是否可用:

    VERIFY OTHER 2>nul

    SETLOCAL ENABLEEXTENSIONS

    IF ERRORLEVEL 1 echo Unable to enable extensions

此方法之所以有效,是因为在 CMD.EXE 的旧版本上,SETLOCAL

不设置 ERRORLEVEL 值。如果参数不正确,VERIFY 命令会将

ERRORLEVEL 值初始化为非零值。


SETX 命令 [外部命令]

SetX 有三种使用方式: 

语法 1:

    SETX [/S system [/U [domain\]user [/P [password]]]] var value [/M]

语法 2:

    SETX [/S system [/U [domain\]user [/P [password]]]] var /K regpath [/M]

语法 3:

    SETX [/S system [/U [domain\]user [/P [password]]]]

         /F file {var {/A x,y | /R x,y string}[/M] | /X} [/D delimiters]

描述:

    在用户或系统环境创建或修改环境变量。能基于参数、注册表项或文件输

    入设置变量。

参数列表:

    /S     system          指定要连接到的远程系统。

    /U     [domain\]user   指定应该在哪个用户上下文执行命令。

    /P     [password]      指定给定用户上下文的密码。如果省略则

                           提示输入。

    var                    指定要设置的环境变量。

    value                  指定分配给环境变量的值。

    /K     regpath         指定变量是基于注册表项的信息而设置的。

                           路径的格式应该是 hive\key\...\value。例如

                           HKEY_LOCAL_MACHINE\System\CurrentControlSet\

                           Control\TimeZoneInformation\StandardName。

    /F     file            指定要使用的文本文件的文件名。

    /A     x,y             指定绝对文件坐标(线 X,项目 Y)作为在此文件

                           里搜索的参数。

    /R     x,y string      指定有关“字符串”作为搜索参数的相对文件坐标。

    /M                     指定应该在系统 (HKEY_LOCAL_MACHINE) 环境中设

                           置此变量。在 HKEY_CURRENT_USER 环境下,默认

                           将设置此变量。

    /X                     用 x,y 坐标显示文件内容。

    /D     delimiters      指定其他限定符,如 "," 或 "\"。

                           内置分隔符是空格、制表符、回车和换行符。所有

                           ASCII 字符都可作为限定符。限定符的最大数量,

                           包括内置分隔符,是 15。

    /?                     显示此帮助消息。

注意: 1) SETX 在注册表中将变量写入主机环境。

      2) 在本地系统,用此工具创建或修改的变量将在以后的命令窗口可用,但

         在当前的 CMD.exe 命令窗口。

      3) 在远程系统,用此工具创建或修改的变量在下次登录会话可用。

      4) 有效的注册表项数据类型是 REG_DWORD,REG_EXPAND_SZ,REG_SZ

         和 REG_MULTI_SZ。

      5) 受支持的配置单元:  HKEY_LOCAL_MACHINE (HKLM),

         HKEY_CURRENT_USER (HKCU)。

      6) 限定符区分大小写。

      7) REG_DWORD 的值是从注册表里以十进制格式提取出来的。

示例:

    SETX MACHINE COMPAQ 

    SETX MACHINE "COMPAQ COMPUTER" /M

    SETX MYPATH "%PATH%"

    SETX MYPATH ~PATH~

    SETX /S system /U user /P password  MACHINE COMPAQ 

    SETX /S system /U user /P password MYPATH ^%PATH^% 

    SETX TZONE /K HKEY_LOCAL_MACHINE\System\CurrentControlSet\

         Control\TimeZoneInformation\StandardName

    SETX BUILD /K "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows

         NT\CurrentVersion\CurrentBuildNumber" /M

    SETX /S system /U user /P password TZONE /K HKEY_LOCAL_MACHINE\

         System\CurrentControlSet\Control\TimeZoneInformation\

         StandardName

    SETX /S system /U user /P password BUILD /K 

         "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\

         CurrentVersion\CurrentBuildNumber" /M

    SETX /F ipconfig.out /X 

    SETX IPADDR /F ipconfig.out /A 5,11 

    SETX OCTET1 /F ipconfig.out /A 5,3 /D "#$*." 

    SETX IPGATEWAY /F ipconfig.out /R 0,7 Gateway

    SETX /S system /U user /P password  /F c:\ipconfig.out /X


SHIFT 命令

更改批处理文件中可替换参数的位置。

SHIFT [/n]

如果命令扩展被启用,SHIFT 命令支持/n 命令行开关;该命令行开关告诉

命令从第 n 个参数开始移位;n 介于零和八之间。例如:

    SHIFT /2

会将 %3 移位到 %2,将 %4 移位到 %3,等等;并且不影响 %0 和 %1。


启动一个单独的窗口以运行指定的程序或命令。


START 命令

START ["title"] [/D path] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]

      [/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]

      [/NODE <NUMA node>] [/AFFINITY <hex affinity mask>] [/WAIT] [/B]

      [command/program] [parameters]

    "title"     在窗口标题栏中显示的标题。

    path        启动目录。

    B           启动应用程序,但不创建新窗口。

                应用程序已忽略 ^C 处理。除非应用程序

                启用 ^C 处理,否则 ^Break 是唯一可以中断

                该应用程序的方式。

    I           新的环境将是传递

                给 cmd.exe 的原始环境,而不是当前环境。

    MIN         以最小化方式启动窗口。

    MAX         以最大化方式启动窗口。

    SEPARATE    在单独的内存空间中启动 16 位 Windows 程序。

    SHARED      在共享内存空间中启动 16 位 Windows 程序。

    LOW         在 IDLE 优先级类中启动应用程序。

    NORMAL      在 NORMAL 优先级类中启动应用程序。

    HIGH        在 HIGH 优先级类中启动应用程序。

    REALTIME    在 REALTIME 优先级类中启动应用程序。

    ABOVENORMAL 在 ABOVENORMAL 优先级类中启动应用程序。

    BELOWNORMAL 在 BELOWNORMAL 优先级类中启动应用程序。

    NODE        将首选非一致性内存结构(NUMA)节点指定为

                十进制整数。

    AFFINITY    将处理器关联掩码指定为十六进制数字。

                进程被限制在这些处理器上运行。

                将 /AFFINITY 和 /NODE 结合使用时,会对关联掩码

                进行不同的解释。指定关联掩码,以便将零位作为起始位置(就如将 NUMA

                节点的处理器掩码向右移位一样)。

                进程被限制在指定关联掩码和 NUMA 节点之间的

                那些通用处理器上运行。

                如果没有通用处理器,则进程被限制在

                指定的 NUMA 节点上运行。

    WAIT        启动应用程序并等待它终止。

    command/program

                如果它是内部 cmd 命令或批文件,则

                该命令处理器是使用 cmd.exe 的 /K 开关运行的。

                这表示运行该命令之后,该窗口

                将仍然存在。

                如果它不是内部 cmd 命令或批文件,则

                它就是一个程序,并将作为一个窗口化应用程序或

                控制台应用程序运行。

    parameters  这些是传递给 command/program 的参数。

注意: 在 64 位平台上不支持 SEPARATE 和 SHARED 选项。

通过指定 /NODE,可按照利用 NUMA 系统中的内存区域的方式

创建进程。例如,可以创建两个完全

通过共享内存互相通信的进程以共享相同的首选 NUMA 节点,

从而最大限度地减少内存延迟。只要有可能,

它们就会分配来自相同 NUMA 节点的

内存,并且会在指定节点之外的处理器上自由运行。

    start /NODE 1 application1.exe

    start /NODE 1 application2.exe

这两个进程可被进一步限制在相同 NUMA 节点内的指定处理器

上运行。在以下示例中,application1 在

节点的两个低位处理器上运行,而 application2

在该节点的其后两个处理器上运行。该示例假定指定节点至少具有四个逻辑处理器。请注意,节点号可更改为该计算机的任何有效节点号,

而无需更改关联掩码。

    start /NODE 1 /AFFINITY 0x3 application1.exe

    启动 /NODE 1 /AFFINITY 0xc application2.exe

如果命令扩展被启用,通过命令行或 START 命令的外部命令

调用会如下改变:

将文件名作为命令键入,非可执行文件可以通过文件关联调用。

    (例如,WORD.DOC 会调用跟 .DOC 文件扩展名关联的应用程序)。

    关于如何从命令脚本内部创建这些关联,请参阅 ASSOC 和

     FTYPE 命令。

执行的应用程序是 32 位 GUI 应用程序时,CMD.EXE 不等应用

    程序终止就返回命令提示符。如果在命令脚本内执行,该新行为

    则不会发生。

如果执行的命令行的第一个符号是不带扩展名或路径修饰符的

    字符串 "CMD","CMD" 会被 COMSPEC 变量的数值所替换。这

    防止从当前目录提取 CMD.EXE。

如果执行的命令行的第一个符号没有扩展名,CMD.EXE 会使用

    PATHEXT 环境变量的数值来决定要以什么顺序寻找哪些扩展

    名。PATHEXT 变量的默认值是:

        .COM;.EXE;.BAT;.CMD

    请注意,该语法跟 PATH 变量的一样,分号隔开不同的元素。

查找可执行文件时,如果没有相配的扩展名,看一看该名称是否

与目录名相配。如果确实如此,START 会在那个路径上调用 

Explorer。如果从命令行执行,则等同于对那个路径作 CD /D。


TREE 命令 [外部命令]

以图形显示驱动器或路径的文件夹结构。

TREE [drive:][path] [/F] [/A]

   /F   显示每个文件夹中文件的名称。

   /A   使用 ASCII 字符,而不使用扩展字符。


TYPE  命令

显示文本文件的内容。

TYPE [drive:][path]filename

显示文本文件的内容。

TYPE [drive:][path]filename


VOL 命令

显示磁盘卷标和序列号(如果存在)。

VOL [drive:]


XCOPY 命令 [外部命令]

复制文件和目录树。

XCOPY source [destination] [/A | /M] [/D[:date]] [/P] [/S [/E]] [/V] [/W]

                           [/C] [/I] [/Q] [/F] [/L] [/G] [/H] [/R] [/T] [/U]

                           [/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z] [/B] [/J]

                           [/EXCLUDE:file1[+file2][+file3]...] [/COMPRESS]

  source       指定要复制的文件。

  destination  指定新文件的位置和/或名称。

  /A           仅复制有存档属性集的文件,

               但不更改属性。

  /M           仅复制有存档属性集的文件,

               并关闭存档属性。

  /D:m-d-y     复制在指定日期或指定日期以后更改的文件。

               如果没有提供日期,则只复制

               源时间比目标时间新的文件。

  /EXCLUDE:file1[+file2][+file3]...

               指定含有字符串的文件列表。每个字符串

               在文件中应位于单独的一行。如果任何

               字符串与复制文件的绝对路径的任何部分相符,

               则排除复制该文件。例如,

               指定如 \obj\ 或 .obj 的字符串会分别

               排除目录 obj 下面的所有文件或带有

               .obj 扩展名的所有文件。

  /P           创建每个目标文件之前均进行提示。

  /S           复制目录和子目录,不包括空目录。

  /E           复制目录和子目录,包括空目录。

               与 /S /E 相同。可以用来修改 /T。

  /V           验证每个新文件的大小。

  /W           提示在复制前按键。

  /C           即使有错误,也继续复制。

  /I           如果目标不存在,且要复制多个文件,

               则假定目标必须是目录。

  /Q           复制时不显示文件名。

  /F           复制时显示完整的源文件名和目标文件名。

  /L           显示要复制的文件。

  /G           允许将加密文件复制到

               不支持加密的目标。

  /H           隐藏文件和系统文件也会复制。

  /R           覆盖只读文件。

  /T           创建目录结构,但不复制文件。不

               包括空目录或子目录。/T /E 包括

               空目录和子目录。

  /U           只复制已经存在于目标中的文件。

  /K           复制属性。一般的 Xcopy 会重置只读属性。

  /N           用生成的短名称复制。

  /O           复制文件所有权和 ACL 信息。

  /X           复制文件审核设置(隐含 /O)。

  /Y           取消提示以确认要覆盖

               现有目标文件。

  /-Y          触发提示,以确认要覆盖

               现有目标文件。

  /Z           在可重新启动模式下复制网络文件。

  /B           复制符号链接本身与链接目标。

  /J           复制时不使用缓冲的 I/O。推荐复制大文件时使用。

  /COMPRESS    如果适用,在传输期间请求网络

               压缩。

开关 /Y 可以预先在 COPYCMD 环境变量中设置。

这可能被命令行上的 /-Y 覆盖。


【请留言交流】

例子:

屏幕截图 2021-07-01 202002.jpg

分享给朋友:

相关文章

下载:经典游戏音效开发SDK(fmod),专业的游戏音频开发包,个人非商业使用完全免费。

fmod 简  介这个版本是最完美的一个版本,之后的都添加了其它的应用模块。这个版本响应速度快,占用内存少,功能完善。而且是最后一个个人非商业化使用完全免费版本。使用效果非常好,很多游戏就用...

关于 Cannot enable. Maybe the USB cable is bad? 这个问题。

关于 Cannot enable. Maybe the USB cable is bad? 这个问题。

经常摆弄电脑,那USB接口也是插进,拔出多少次。有一天发生了这个问题,什么问题呢?见图:只要是linux 新内核,都会出现这个问题,虚拟机USB功能,DOSBOX等USB功能不可识别。在网上查看了一些...

linux 下的汉字输入法.

linux 下的汉字输入法.

各位老师,才子,同事们好!有很多初级玩linux的同学都会碰到一个难题,也就是在linux 下的汉字输入法.这个问题一直困绕了linux 使用者多年.我还好,每次都使用正常.现在说说心得笔记就可以了....

关于ch341驱动,联动3D打印机USB串口通讯.

关于ch341驱动,联动3D打印机USB串口通讯.

手上有个3D打印机,搬家的原因,好久没用.天气热了,打印温度很适合,正好可以使用.又过了一年.发现linux 版本内核已经升级,和原来的系统不一样了. 按照3D打印机的说明,和寻找它的程序,原来的方法...

linux 下的 opengl SDK。

linux 下的 opengl SDK。

opengl 图形库是开放式图形库,最近出了一个freeglut3 我们下载它:sudo apt-get install freeglut3sudo apt-get install freeglut3...

关于DOSBOX的简单说明。

关于DOSBOX的简单说明。

linux 下的共享软件DOSBOX 在有些版本的linux 中不能使用鼠标。网上说明要换声卡地址和中断,连接鼠标端口才可以使用。 曾经设置过,可以使用参数不记得。有个解决方法。这是软件问题。 先卸载...