文章目录

1.Sc : 与服务控制器和已安装的服务进行通信。

描述:
        SC 是用于与服务控制管理器和服务进行通信的命令行程序。
用法:
        sc <server> [command] [service name] <option1> <option2>...


        选项 <server> 的格式为 "\\ServerName"
        键入 "sc [command]" 可以获得有关命令的进一步帮助
        命令:
          query-----------查询服务的状态,
                          或枚举服务类型的状态。
          queryex---------查询服务的扩展状态,
                          或枚举服务类型的状态。
          start-----------启动服务。
          pause-----------向服务发送 PAUSE 控制请求。
          interrogate-----向服务发送 INTERROGATE 控制请求。
          continue--------向服务发送 CONTINUE 控制请求。
          stop------------向服务发送 STOP 请求。
          config----------更改服务的配置(永久)。
          description-----更改服务的描述。
          failure---------更改服务失败时执行的操作。
          failureflag-----更改服务的失败操作标志。
          sidtype---------更改服务的服务 SID 类型。
          privs-----------更改服务的所需权限。
          qc--------------查询服务的配置信息。
          qdescription----查询服务的描述。
          qfailure--------查询失败时服务执行的操作。
          qfailureflag----查询服务的失败操作标志。
          qsidtype--------查询服务的服务 SID 类型。
          qprivs----------查询服务的所需权限。
          qtriggerinfo----查询服务的触发器参数。
          qpreferrednode--查询首选的服务 NUMA 节点。
          delete----------(从注册表)删除服务。
          create----------创建服务(将其添加到注册表)。
          control---------向服务发送控制。
          sdshow----------显示服务的安全描述符。
          sdset-----------设置服务的安全描述符。
          showsid---------显示相应于假定名称的 SID 字符串。
          triggerinfo-----配置服务的触发器参数。
          preferrednode---设置首选的服务 NUMA 节点。
          GetDisplayName--获取服务的 DisplayName 
          GetKeyName------获取服务的 ServiceKeyName。
          EnumDepend------枚举服务的依存关系。

        下列命令不要求服务名称:
        sc <server> <command> <option>
          boot------------(ok | bad) 指示是否将上一次启动保存为
                          最近一次已知的正确启动配置
          Lock------------锁定服务数据库
          QueryLock-------查询 SCManager 数据库的 LockStatus
示例:
        sc start MyService

2.Schtasks :安排命令和程序定期或在特定时间运行。

refer:

3.Serverceipoptin : 允许您参与客户体验改善计划(CEIP).

4.Servermanagercmd : 安装和删除角色,角色服务和功能。

refer:

5.Serverweroptin : 允许您启用错误报告。

refer:

6.Set : 显示,设置或删除CMD.EXE环境变量。

refer:

显示、设置或删除 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 节点号。

例子

要设置名为TEST^1的环境变量,请键入:

set testVar=test^^1

<mark>注意:</mark>
该组命令给下面的等号(=)的变量的值的一切。如果输入:

set testVar="test^1"

您会得到以下结果:

testVar="test^1"

要设置名为TEST&1的环境变量,请键入:

set testVar=test^&1

要设置名为INCLUDE的环境变量,以便将字符串 C:\Inc与其关联,请键入:

set include=c:\inc

然后,您可以在批处理文件中使用字符串C:\Inc,方法是将百分号(%)括在名称INCLUDE中。例如,您可以在批处理文件中包含以下命令,以便显示与INCLUDE环境变量关联的目录的内容:

dir %include%

处理此命令时,字符串C:\Inc将替换%include%。

您还可以在批处理程序中使用set,该程序将新目录添加到PATH环境变量中。例如:

@echo off
rem ADDPATH.BAT adds a new directory
rem to the path environment variable.
set path=%1;%path%
set

要显示以字母P开头的所有环境变量的列表,请键入:

set p

7.Setlocal : 在批处理文件中开始环境变量的本地化。

refer:

在批处理文件中开始环境变量的本地化。本地化将继续,直到遇到匹配的endlocal命令或达到批处理文件的末尾。


开始批处理文件中环境改动的本地化操作。
在执行 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 值初始化成非零值。

例子

您可以在批处理文件中本地化环境变量,如以下示例脚本所示:

rem *******Begin Comment**************
rem This program starts the superapp batch program on the network,
rem directs the output to a file, and displays the file
rem in Notepad.
rem *******End Comment**************
@echo off
setlocal
path=g:\programs\superapp;%path%
call superapp>c:\superapp.out
endlocal
start notepad c:\superapp.out

8.Setspn : 读取,修改和删除Active Directory服务帐户的服务主体名称(SPN)目录属性。

refer:

9.Setx : 创建或修改环境变量,无需编程或编写脚本.

refer:

在用户或系统环境中创建或修改环境变量,无需编程或编写脚本。该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

例子

要将本地环境中的MACHINE环境变量设置为值Brand1,请键入:

setx MACHINE Brand1

要将系统环境中的MACHINE环境变量设置为值Brand1 Computer,请键入:

setx MACHINE "Brand1 Computer" /m

要在本地环境中设置MYPATH环境变量以使用PATH环境变量中定义的搜索路径,请键入:

setx MYPATH %PATH%

要在本地环境中设置MYPATH环境变量以使用替换~with%后在PATH环境变量中定义的搜索路径,请键入:

setx MYPATH ~PATH~

要将本地环境中的MACHINE环境变量设置为名为Computer1的远程计算机上的Brand1,请键入:
setx /s computer1 /u maindom\hiropln /p p@ssW23 MACHINE Brand1

要在本地环境中设置MYPATH环境变量以使用名为Computer1的远程计算机上的PATH环境变量中定义的搜索路径,请键入:

setx /s computer1 /u maindom\hiropln /p p@ssW23 MYPATH %PATH%

`要将本地环境中的TZONE环境变量设置为HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation\StandardName注册表项中找到的值,请键入:

setx TZONE /k HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation\StandardName

要将名为Computer1的远程计算机的本地环境中的TZONE环境变量设置为HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Control \ TimeZoneInformation \ StandardName注册表项中找到的值,请键入:

setx /s computer1 /u maindom\hiropln /p p@ssW23 TZONE /k HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation\StandardName

要将系统环境中的BUILD环境变量设置为HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\CurrentBuildNumber注册表项中找到的值,请键入:

setx BUILD /k "HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\CurrentBuildNumber" /m

要将名为Computer1的远程计算机的系统环境中的BUILD环境变量设置为HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\CurrentBuildNumber注册表项中找到的值,请键入:

setx /s computer1 /u maindom\hiropln /p p@ssW23 BUILD /k "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\CurrentBuildNumber" /m

要显示名为Ipconfig.out的文件的内容以及内容的相应坐标,请键入:

setx /f ipconfig.out /x

要将本地环境中的IPADDR环境变量设置为在文件Ipconfig.out中的坐标5,11处找到的值,请键入:

setx IPADDR /f ipconfig.out /a 5,11

要将本地环境中的OCTET1环境变量设置为文件Ipconfig.out中坐标5,3处的值,并使用分隔符“#$ *”。,键入:

setx OCTET1 /f ipconfig.out /a 5,3 /d "#$*."

要将本地环境中的IPGATEWAY环境变量设置为相对于文件Ipconfig.out中“Gateway”坐标的坐标0,7处找到的值,请键入:

setx IPGATEWAY /f ipconfig.out /r 0,7 Gateway

要在名为Computer1的计算机上显示名为Ipconfig.out的文件的内容以及内容的相应坐标,请键入:

setx /s computer1 /u maindom\hiropln /p p@ssW23 /f ipconfig.out /x

10.Sfc : 扫描并验证所有受保护系统文件的完整性,并使用正确版本替换不正确的版本。

refer:


SFC [/SCANNOW] [/VERIFYONLY] [/SCANFILE=<file>] [/VERIFYFILE=<file>]
    [/OFFWINDIR=<offline windows directory> /OFFBOOTDIR=<offline boot directory>]

/SCANNOW        扫描所有受保护的系统文件的完整性,并修复出问题的文件(如果出现问题)。
/VERIFYONLY     扫描所有受保护的系统文件的完整性。不执行修复操作。
/SCANFILE       扫描参考文件的完整性,如果找到问题,则修复文件。
                指定完整路径 <文件>
/VERIFYFILE     验证带有完整路径 <文件> 的文件的完整性。不执行修复。
/OFFBOOTDIR     用于脱机修复指定脱机启动目录的位置
/OFFWINDIR      用于脱机修复指定脱机 Windows 目录的位置

例如

        sfc /SCANNOW
        sfc /VERIFYFILE=c:\windows\system32\kernel32.dll
        sfc /SCANFILE=d:\windows\system32\kernel32.dll /OFFBOOTDIR=d:\ /OFFWINDIR=d:\windows
        sfc /VERIFYONLY

例子

要验证kernel32.dll文件,请键入:

sfc /verifyfile=c:\windows\system32\kernel32.dll

要设置kernel32.dll文件的脱机修复,并将脱机启动目录设置为d:并将脱机Windows目录设置为d:\windows,请键入:

sfc /scanfile=d:\windows\system32\kernel32.dll /offbootdir=d:\ /offwindir=d:\windows

11.Shadow : 远程控制远程桌面会话主机(RD会话主机)服务器上另一个用户的活动会话。

refer:

12.Shift : 更改批处理文件中批处理参数的位置。

refer:


SHIFT [/n]

如果命令扩展被启用,SHIFT 命令支持/n 命令行开关;该命令行开关告诉
命令从第 n 个参数开始移位;n 介于零和八之间。例如:

    SHIFT /2

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

例子

名为Mycopy.bat的样本批处理文件中的以下行演示了如何将shift与任意数量的批处理参数一起使用。在此示例中,Mycopy.bat将文件列表复制到特定目录。批处理参数由目录和文件名参数表示。

@echo off
rem MYCOPY.BAT copies any number of files
rem to a directory.
rem The command uses the following syntax:
rem mycopy dir file1 file2 ... 
set todir=%1
:getfile
shift
if "%1"=="" goto end
copy %1 %todir%
goto getfile
:end
set todir=
echo All done

13.Showmount : 显示已安装的目录。

refer:

语法

showmount{-e|-a|-d} [Server]

描述

所述的showmount命令行实用程序显示有关由NFS服务器导出由指定的计算机上安装的文件系统的信息服务器。如果未提供Server,showmount将显示有关运行showmount命令的计算机的信息。

您必须提供以下选项之一:

  • -e 显示在服务器上导出的所有文件系统。
  • -a 显示所有网络文件系统(NFS)客户端以及每个已安装的服务器上的目录。
  • -d 显示NFS客户端当前挂载的服务器上的所有目录。

14.Shutdown :关闭或重新启动本地或远程计算机。

refer:

用法: shutdown [/i | /l | /s | /r | /g | /a | /p | /h | /e] [/f]
    [/m \\computer][/t xxx][/d [p|u:]xx:yy [/c "comment"]]

    没有参数   显示帮助。这与键入 /? 是一样的。
    /?         显示帮助。这与不键入任何选项是一样的。
    /i         显示图形用户界面(GUI)。这必须是第一个选项。
    /l         注销。这不能与 /m 或 /d 选项一起使用。
    /s         关闭计算机。
    /r         关闭并重新启动计算机。
    /g         关闭并重新启动计算机。系统重新启动后,重新启动所有注册的应用程序。
    /a         中止系统关闭。这只能在超时期间使用。
    /p         关闭本地计算机,没有超时或警告。可以与 /d 和 /f 选项一起使用。
    /h         休眠本地计算机。可以与 /f 选项一起使用。
    /e         记录计算机意外关闭的原因。
    /m \\computer 指定目标计算机。
    /t xxx     设置关闭前的超时为 xxx 秒。
               有效范围是 0-315360000 (10 年),默认值为 30。
               如果超时时间大于 0,则默示 /f 
               参数。
    /c "comment" 重启动或关闭的原因的注释。
               最多允许 512 个字符。
    /f         强制正在运行的应用程序关闭,不前台警告用户。
               当为 /t 参数指定大于 0 的值时,
               则默示 /f 参数。
    /d [p|u:]xx:yy  提供重新启动或关机的原因。
               p 表明重新启动或关闭是计划内的。
               u 表示原因由用户定义。
               如果 p 和 u 均未指定,则是计划外重新启动
               或关闭。
               xx 是主要原因号(小于 256 的正整数)。
               yy 是次要原因号(小于 65536 的正整数)。

此计算机上的原因:
(E = 预期 U = 意外 P = 计划内,C = 自定义)
类别	主要 	次要	标题

 U  	0	0	其他(计划外)
E   	0	0	其他(计划外)
E P 	0	0	其他(计划内)
 U  	0	5	其他故障: 系统没有反应
E   	1	1	硬件: 维护(计划外)
E P 	1	1	硬件: 维护(计划内)
E   	1	2	硬件: 安装(计划外)
E P 	1	2	硬件: 安装(计划内)
E   	2	2	操作系统: 恢复(计划内)
E P 	2	2	操作系统: 恢复(计划内)
  P 	2	3	操作系统: 升级(计划内)
E   	2	4	操作系统: 重新配置(计划外)
E P 	2	4	操作系统: 重新配置(计划内)
  P 	2	16	操作系统: Service Pack (计划内)
    	2	17	操作系统: 热修补(计划外)
  P 	2	17	操作系统: 热修补(计划内)
    	2	18	操作系统: 安全修补(计划外)
  P 	2	18	操作系统: 安全修补(计划内)
E   	4	1	应用程序: 维护(计划外)
E P 	4	1	应用程序: 维护(计划内)
E P 	4	2	应用程序: 安装(计划内)
E   	4	5	应用程序: 没有反应
E   	4	6	应用程序: 不稳定
 U  	5	15	系统故障: 停止错误
 U  	5	19	
E   	5	19	
E P 	5	19	
E   	5	20	网络连接丢失(计划外)
 U  	6	11	电源故障: 电线被拔掉
 U  	6	12	电源故障: 环境
  P 	7	0	旧版 API 关机

15.Sort :读取输入,对数据进行排序,并将结果写入屏幕,文件或其他设备。

refer:

SORT [/R] [/+n] [/M kilobytes] [/L locale] [/REC recordbytes]

  [[drive1:][path1]filename1] [/T [drive2:][path2]]

  [/O [drive3:][path3]filename3]

  /+n                         指定开始每个比较的字符号码 n。/+3 说明每个
                              比较应从每行的第三个字符开始。少于 n 个字符
                              的行排在其他行之前。按默认值,从每行的第一
                              个字符开始比较。

  /L[OCALE] locale            用指定的区域设置替代系统默认区域设置。
                              ""C"" 区域设置产生最快的排序顺序并且是当前
                              的唯一其他选择。排序总是不分大小写的。

  /M[EMORY] kilobytes         指定用于排序的主内存量,单位为 KB。
                              最小内存量总是 160 KB。如果指定内存大小,
                              无论主内存的可用量是多少,指定的内存量会
                              全部用于排序。

                              要取得最佳性能,通常不指定内存大小。按默认
                              值,如果达到默认最大内存值,排序会一次完成
                              (非临时文件);否则,排序会分两次完成(没有
                              完全排序的数据存储在临时文件中);用于排序
                              和合并的内存量相等。如果输入和输出都是文
                              件,默认最大内存量为可用主内存的 90%;
                              否则,为主内存的 45%。

  /REC[ORD_MAXIMUM] characters 指定记录中的最大字符数量
                              (默认值为 4096,最大值为 65535)。

  /R[EVERSE]                  颠倒排序顺序,即,从 Z 到 A,再从 9 到 0。
  [drive1:][path1]filename1   指定要排序的文件。如果没有指定,则排序标准

                              输入。指定输入文件比将同一个文件重定向为标
                              准输入快。
  /T[EMPORARY]
    [drive2:][path2]          指定保留排序工作存储的目录路径,以防主内
                              存无法容纳数据。默认值是使用系统临时目录。

  /O[UTPUT]
    [drive3:][path3]filename3 指定在哪个文件中储存经过排序的输入。
                              如果没有指定,数据会被写入标准输出。
                              指定输出文件比将标准输出重定向到同一个文件快。

例子

排序文件

要以相反的顺序对名为Expenses.txt的文件中的行进行排序和显示,请键入:

sort /r expenses.txt

对命令的输出进行排序

要搜索名为Maillist.txt的大文件以查找文本“Jones”,并对搜索结果进行排序,请使用管道(|)将find命令的输出定向到sort命令,如下所示:

find "Jones" maillist.txt | sort

该命令生成包含指定文本的行的排序列表。

排序键盘输入

要对键盘输入进行排序并在屏幕上按字母顺序显示结果,可以先使用不带参数的sort命令,如下所示:

sort

然后键入要排序的文本,并在每行末尾按ENTER键。键入文本后,按CTRL + Z,然后按ENTER键。该类型的命令将显示您键入的文本,按字母顺序排序。

16.Start : 启动单独的命令提示符窗口以运行指定的程序或命令。

refer:

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

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 节点的
内存,并且会在指定节点之外的处理器上自由运行。

    启动 /NODE 1 application1.exe
    启动 /NODE 1 application2.exe

这两个进程可被进一步限制在相同 NUMA 节点内的指定处理器上运行。在以下
示例中, application1 在节点的两个低顺序处理器上运行,而 application2
在该节点的其后两个处理器上运行。该示例假定指定节点至少具有四个逻辑
处理器。请注意,节点号可更改为该计算机的任何有效节点号,而无需更改关联
掩码。

    启动 /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。

备注

  • 通过键入文件名作为命令,可以通过文件关联运行不可执行文件。

  • 当您运行包含字符串“CMD”作为没有扩展名或路径限定符的第一个标记的命令时,“CMD”将替换为COMSPEC变量的值。这可以防止用户从当前目录中获取cmd。

  • 运行32位图形用户界面(GUI)应用程序时,cmd不会等待应用程序退出,然后再返回到命令提示符。如果从命令脚本运行应用程序,则不会发生此行为。

  • 当您运行使用不包含扩展的第一个令牌的命令时,Cmd.exe使用PATHEXT环境变量的值来确定要查找的扩展名以及查找顺序。PATHEXT变量的默认值为:

    .COM;.EXE;.BAT;.CMD
    

    请注意,语法与PATH变量相同,用分号分隔每个扩展名。

  • 当它搜索可执行文件时,如果任何扩展名都不匹配,则开始检查名称是否与目录名称匹配。如果是,则启动在该路径上打开Explorer.exe。

例子

要在命令提示符下启动Myapp程序并保留使用当前的命令提示符窗口,请键入:

start myapp

要在单独的最大化命令提示符窗口中查看启动命令行帮助主题,请键入:

start /max start /?

17.Storrept : 安装文件服务器资源管理器、包括用于创建和管理存储的报告和库存报告的任务,以及配置文件服务器资源管理器的常规管理。

refer:

18.Subst :将路径与驱动器号关联。

refer:

将路径与驱动器号关联。如果在没有参数的情况下使用,则subst显示有效的虚拟驱动器的名称。

19.Sysocmgr :已弃用.

20.Systeminfo : 显示有关计算机及其操作系统的详细配置信息.

refer:

显示有关计算机及其操作系统的详细配置信息,包括操作系统配置,安全信息,产品ID和硬件属性(如RAM,磁盘空间和网卡)。


SYSTEMINFO [/S system [/U username [/P [password]]]] [/FO format] [/NH]

描述:
    该工具显示本地或远程机器(包括服务包级别)的操作系统配置的信息。

参数列表:
    /S      system           指定要连接的远程系统。
    /U      [domain\]user    指定应该在哪个用户上下文执行命令。
    /P      [password]       指定给定用户上下文的密码。如果省略则提示输入。
    /FO     format           指定显示结果的格式。
                             有效值: "TABLE""LIST""CSV"。
    /NH                      指定“列标题”不应该在输出中显示。
                             只对 "TABLE""CSV" 格式有效。
    /?                       显示帮助消息。

例如:
    SYSTEMINFO
    SYSTEMINFO /?
    SYSTEMINFO /S system
    SYSTEMINFO /S system /U user
    SYSTEMINFO /S system /U domain\user /P password /FO TABLE
    SYSTEMINFO /S system /FO LIST
    SYSTEMINFO /S system /FO CSV /NH

19.Sxstrace

WinSxs 跟踪实用工具。
用法: SxsTrace [选项]
选项:
   Trace -logfile:FileName [-nostop]
       为 sxs 启用跟踪。
       将跟踪日志保存到 FileName。
       如果指定 -nostop,则不会提示停止跟踪。
   Parse -logfile:FileName -outfile:ParsedFile  [-filter:AppName]
       将原始跟踪文件转换成用户可读的格式并将结果保存到 ParsedFile。
       使用 -filter 选项筛选输出。
   Stoptrace
       停止跟踪(如果以前未停止过跟踪)。

示例:   SxsTrace Trace -logfile:SxsTrace.etl
       SxsTrace Parse -logfile:SxsTrace.etl -outfile:SxsTrace.txt
    指定显示结果的格式。
                         有效值: "TABLE"、"LIST"、"CSV"。
/NH                      指定“列标题”不应该在输出中显示。
                         只对 "TABLE" 和 "CSV" 格式有效。
/?                       显示帮助消息。

例如:
SYSTEMINFO
SYSTEMINFO /?
SYSTEMINFO /S system
SYSTEMINFO /S system /U user
SYSTEMINFO /S system /U domain\user /P password /FO TABLE
SYSTEMINFO /S system /FO LIST
SYSTEMINFO /S system /FO CSV /NH


# 19.Sxstrace

```shell
WinSxs 跟踪实用工具。
用法: SxsTrace [选项]
选项:
   Trace -logfile:FileName [-nostop]
       为 sxs 启用跟踪。
       将跟踪日志保存到 FileName。
       如果指定 -nostop,则不会提示停止跟踪。
   Parse -logfile:FileName -outfile:ParsedFile  [-filter:AppName]
       将原始跟踪文件转换成用户可读的格式并将结果保存到 ParsedFile。
       使用 -filter 选项筛选输出。
   Stoptrace
       停止跟踪(如果以前未停止过跟踪)。

示例:   SxsTrace Trace -logfile:SxsTrace.etl
       SxsTrace Parse -logfile:SxsTrace.etl -outfile:SxsTrace.txt