Windows 批处理 (cmd/bat) 使用参考
2019-01-26 17:13:12 阿炯

前言

批处理文件(batch file)包含一系列 DOS 命令,通常用于自动执行重复性任务。用户只需双击批处理文件便可执行任务,而无需重复输入相同指令。编写批处理文件非常简单,但难点在于确保一切按顺序执行。编写严谨的批处理文件可以极大程度地节省时间,在应对重复性工作时尤其有效。在 Windows 中善用批处理可以简化很多重复工作。

更新记录
2016 年 03 月 29 日 - 初稿

阅读原文

扩展阅读

Windows批处理学习总结

Windows Cmd命令语法大全


什么是批处理

批处理(Batch),也称为批处理脚本。顾名思义,批处理就是对某对象进行批量的处理,批处理文件的扩展名为 bat。

目前比较常见的批处理包含两类:DOS 批处理和 PS 批处理。PS 批处理是基于强大的图片编辑软件 Photoshop 的,用来批量处理图片的脚本;而 DOS 批处理则是基于 DOS 命令的,用来自动地批量地执行 DOS 命令以实现特定操作的脚本。这里要讲的就是 DOS 批处理。

批处理是一种简化的脚本语言,它应用于 DOS 和 Windows 系统中,由 DOS 或者 Windows 系统内嵌的命令解释器(通常是 COMMAND.COM 或者 CMD.EXE)解释运行。类似于 Unix 中的 Shell 脚本。批处理文件具有. bat 或者. cmd 的扩展名,其最简单的例子,是逐行书写在命令行中会用到的各种命令。更复杂的情况,需要使用 if,for,goto 等命令控制程序的运行过程,如同 C,Basic 等中高级语言一样。如果需要实现更复杂的应用,利用外部程序是必要的,这包括系统本身提供的外部命令和第三方提供的工具或者软件。

批处理文件,或称为批处理程序,是由一条条的 DOS 命令组成的普通文本文件,可以用记事本直接编辑或用 DOS 命令创建,也可以用 DOS 下的文本编辑器 Edit.exe 来编辑。在 “命令提示” 下键入批处理文件的名称,或者双击该批处理文件,系统就会调用 Cmd.exe 运行该批处理程序。一般情况下,每条命令占据一行;当然也可以将多条命令用特定符号(如:&、&&、|、|| 等)分隔后写入同一行中;还有的情况就是像 if、for 等较高级的命令则要占据几行甚至几十几百行的空间。

系统在解释运行批处理程序时,首先扫描整个批处理程序,然后从第一行代码开始向下逐句执行所有的命令,直至程序结尾或遇见 exit 命令或出错意外退出。

什么是命令提示符(CMD)

命令提示符(CMD)是 Windows 操作系统中的一种命令行工具,它提供了一种通过键入命令来与计算机系统进行交互的方式。CMD 提供了一系列命令和功能,可以用于执行各种任务,如文件和目录管理、系统配置、网络管理、故障排查等。其提供了一个用户与操作系统进行交互的界面,通过输入命令来执行各种操作和任务。其主要作用如下:
执行命令:通过在 CMD 窗口中输入命令,可以执行各种系统操作和任务,如创建、复制、删除文件,启动应用程序,配置网络设置等。

系统管理:CMD 提供了许多命令用于系统管理,如查看和管理进程、服务和驱动程序,管理用户和组,修改系统配置等。

文件和目录管理:使用 CMD 可以进行文件和目录的创建、复制、移动、重命名和删除等操作,还可以查看文件和目录的属性和权限。

系统配置:通过 CMD 可以查看和修改系统的环境变量、注册表、网络设置等,以满足特定需求和配置要求。

网络管理:CMD 提供了一些网络管理命令,如 IP 配置、Ping 测试、网络共享管理等,帮助管理和维护网络连接和设置。

故障排查:CMD 提供了一些命令和工具,用于故障排查和系统诊断,如查看日志文件、检查网络连接、运行系统检测工具等。

CMD 是一个强大而灵活的工具,尤其适用于需要自动化任务和批处理操作的场景。它允许用户通过简单的文本命令来操作系统,提供了更高级和精确的控制,以及批量处理和脚本编写的能力。其在不同版本的 Windows 操作系统中可能存在一些差异,某些命令和功能可能不适用于所有版本。

命令提示符(CMD)和图形化界面(GUI)是两种不同的用户界面方式,各有其特点和优势。下面是它们之间的对比:

用户交互方式:
CMD: 在命令提示符下,用户通过键盘输入命令进行交互,命令的执行结果以文本形式显示在终端窗口中。
GUI: 图形化界面提供了可视化的窗口、菜单、按钮等元素,用户可以使用鼠标、键盘或触摸屏等方式进行交互。

操作复杂性:
CMD: 使用命令行界面需要记住命令和参数的语法和选项,较复杂和繁琐,对于不熟悉命令的用户可能存在学习曲线。
GUI: 图形化界面提供了直观的可视化操作方式,通过图形界面元素和菜单选项的点击和拖拽,用户可以完成操作而无需记住命令。

功能丰富性:
CMD: 命令提示符提供了丰富的命令和工具,可以进行系统管理、文件操作、网络配置等一系列任务,同时还支持批处理和脚本编写,具有灵活性和扩展性。
GUI: 图形化界面通过图形元素和菜单选项提供了各种功能和工具,但可能相对于命令行界面功能更加集中和约束,特定任务的操作可能受到界面设计的限制。

可视化和直观性:
CMD: 命令行界面以文本形式输出结果,对于某些复杂的操作和输出可能不够直观和可视化,需要依赖命令输出和参数设置来理解结果。
GUI: 图形化界面通过可视化元素和交互方式提供了直观的界面,结果以图形、图标、窗口等形式呈现,更易于理解和操作。

自动化和脚本编写:
CMD: 命令行界面在自动化任务和批处理方面具有优势,可以通过批处理文件和脚本编写来实现一系列自动化操作。
GUI: 图形化界面虽然提供了一些自动化功能,但对于复杂的自动化任务和定制化需求可能相对局限,需要借助命令行或脚本来实现。


请注意,关闭 CMD 窗口并不会终止正在后台运行的命令或进程。

CMD 窗口的基本组成部分

标题栏:位于 CMD 窗口的顶部,显示当前窗口的标题和控制按钮,如最小化、最大化和关闭按钮。

菜单栏(可选):在某些 Windows 版本中,CMD 窗口可能具有一个菜单栏,其中包含一些可用的操作和选项。

命令行提示符:在 CMD 窗口中,命令行提示符位于窗口的左侧,表示系统已准备接受命令输入。默认情况下,命令提示符是一个字符串,通常是当前目录的路径,后面跟着一个大于符号(>)或者是当前目录的驱动器和冒号(例如,C:>)。

输入区域:在命令行提示符下方是输入区域,你可以在这里键入命令和参数。

输出区域:CMD 窗口中的输出区域用于显示命令的执行结果、错误消息和其他相关信息。

滚动条:如果输出的内容超过了窗口的可见范围,CMD 窗口将会显示一个垂直滚动条,以便你可以滚动查看更多的内容。

CMD 窗口的界面可能会因不同的 Windows 版本和配置而有所不同。需要注意以下几点:
1.与Windows操作系统一样,CMD 命令对大小写不敏感,即命令和参数可以使用大写或小写字母。
2.可以使用特殊的命令符号和通配符来进行高级操作,例如 |(管道)、>(重定向)、*(通配符)等。
3.如果命令需要管理员权限来执行,就需要以管理员身份运行 CMD 窗口。
4.某些命令可能需要额外的参数或选项,可以使用命令的帮助文档来了解详细的使用方法,例如 command /?。


启动命令解释器的新实例 Cmd.exe。使用时如果没有参数,将显示操作系统的版本和版权信息。

备注
鼓励想要使用更高级功能的用户探索 PowerShell,获取增强的脚本功能和自动化功能。

语法
cmd [/c|/k] [/s] [/q] [/d] [/a|/u] [/t:{<b><f> | <f>}] [/e:{on | off}] [/f:{on | off}] [/v:{on | off}] [<string>]

参数设置
参数说明
/c执行由 <string> 指定的命令,然后退出命令处理器。
/k执行由 <string> 指定的命令,并使命令处理器保持运行。
/s/c/k 一起使用时,触发特殊的非分析规则,这些规则在 <string> 周围去除第一个和最后一个引号 ("),但使命令的其余部分保持不变。
/q关闭回显。
/d禁用自动运行命令的执行。
/a将命令输出的格式设置为美国国家标准协会 (ANSI)。
/u将命令输出的格式设置为 Unicode。
/t:{<b><f> | <f>}设置背景色 (b) 和前景色 (f)。
/e:on启用命令扩展。
/e:off禁用命令扩展。
/f:on启用文件和目录名完成。
/f:off禁用文件和目录名完成。
/v:on启用延迟的环境变量扩展。
/v:off禁用延迟的环境变量扩展。
<string>指定要执行的命令。
/?在命令提示符下显示帮助。


下表列出了可用作 <b> 和 <f> 的值的有效的十六进制数字:
颜色
0黑色
1蓝色
2绿色
3Aqua
4红色
5紫色
6黄色
7白色
8灰色
9淡蓝色
a浅绿色
b淡蓝绿色
c淡红色
d淡紫色
e淡黄色
F亮白色


注解

若要将命令输出重定向到另一个命令的输入,请使用管道 (|) 字符。 例如:
<command1> | <command2>

若要将命令输出重定向到文件,请使用大于尖括号 > 字符。 例如:
<command1> > <file1.txt>

若要对 <string> 使用多个命令,请用命令分隔符 && 分隔它们。 例如:
<command1>&&<command2>&&<command3>

如果提供的目录路径、文件或任何信息包含空格,则必须在文本周围使用双引号 ("),例如 "Computer Name"。 例如:
mkdir Test&&mkdir "Test 2"&&move "Test 2" Test

必须将以下特殊字符用引号括起来:& <> [ ] | { } ^ = ; ! ' + , ` ~ [空格]。

如果指定 /c 或 /k,则仅当满足以下所有条件时,cmd 进程、<string> 的其余部分和引号才会保留:
没有同时使用 /s。
只使用一组引号。
在引号中不使用任何特殊字符(例如:& <> ( ) @ ^ |)。
在引号中使用一个或多个空格字符。
引号中的 <string> 是可执行文件的名称。

如果不满足上述条件,则通过检查第一个字符来处理 <string>,以验证它是否为左引号。如果第一个字符是左引号,则会将其与右引号一起去除。将保留右引号后的任何文本。

如果未指定 /d,则 Cmd.exe 将查找以下注册表子项:
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun\REG_SZ
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun\REG_EXPAND_SZ

如果存在一个或两个注册表子项,则会在所有其他变量之前执行它们。

注意:不正确地编辑注册表可能会对系统造成严重损坏。 在更改注册表之前,应备份计算机上任何有价值的数据。可以使用 /e:off 禁用特定进程的命令扩展。可以通过设置以下 REG_DWORD 值,为计算机或用户会话上的所有 cmd 命令行选项启用或禁用扩展:
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\EnableExtensions\REG_DWORD
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\EnableExtensions\REG_DWORD

使用 Regedit.exe 将 REG_DWORD 值设置为 0×1(已启用)或 0×0(已禁用)。 用户指定的设置优先于计算机设置,命令行选项优先于注册表设置。

注意:不正确地编辑注册表可能会对系统造成严重损坏。在更改注册表之前,应备份计算机上任何有价值的数据。

启用命令扩展时,以下命令将受到影响:
assoc、call、chdir (cd)、color、del (erase)、endlocal、for
ftype、goto、if、mkdir (md)、popd、prompt、pushd
set、setlocal、shift、start(还包括对外部命令进程的更改)

如果启用延迟的环境变量扩展,则可以在运行时使用感叹号字符 (!) 替换环境变量的值。默认情况下,不会启用文件和目录名完成。可以使用 /f:{on | off} 为 cmd 命令的特定进程启用或禁用文件名完成。

可以通过设置以下 REG_DWORD 值,为计算机上的 cmd 命令的所有进程或用户登录会话启用或禁用文件和目录名完成:
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\CompletionChar\REG_DWORD
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\PathCompletionChar\REG_DWORD
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\CompletionChar\REG_DWORD
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\PathCompletionChar\REG_DWORD

若要设置 REG_DWORD 值,请运行 Regedit.exe 并将控制字符的十六进制值用于特定函数(例如,0×9 为 TAB,0×08 为 BACKSPACE)。对空格使用 [0×20] 值,因为它不是有效的控制字符。 用户指定的设置优先于计算机设置,命令行选项优先于注册表设置。

注意:不正确地编辑注册表可能会对系统造成严重损坏。在更改注册表之前,应备份计算机上任何有价值的数据。

如果使用 /f:on 启用文件和目录名完成,请使用 CTRL+D 进行目录名完成,使用 CTRL+F 进行文件名完成。组合键 CTRL+D 和 CTRL+F 之间的唯一区别在于 CTRL+D 仅匹配目录名,而 CTRL+F 匹配文件和目录名。如果在内置目录命令(cd、md 或 rd)上使用文件和目录名完成,则假定目录完成。

按 CTRL+D 或 CTRL+F,处理文件和目录名完成。如果不存在通配符,则这些组合键函数将通配符追加到 <string>,生成匹配的路径列表,然后显示第一个匹配路径。 如果路径均不匹配,则文件和目录名完成函数会发出提示音,并且不会更改显示。

若要在匹配路径列表中移动,请重复按 CTRL+D 或 CTRL+F。
若要在列表中向后移动,请同时按 SHIFT 键和 CTRL+D 或 CTRL+F。
若要放弃匹配路径的已保存列表并生成新列表,请编辑 <string>,然后按 CTRL+D 或 CTRL+F。
如果在 CTRL+D 和 CTRL+F 之间切换,则会丢弃匹配路径的已保存列表,并生成新列表。

如果在匹配路径周围加上引号,文件和目录名完成可以正确处理包含空格或特殊字符的文件名。

如果从 <string> 内处理文件和目录名完成,则在 <string> 中处理完成的点,放弃光标右侧路径的任何部分。


批处理命令简介

echo
rem
pause
call
start
goto
set

批处理符号简介

回显屏蔽 @
重定向 1 >与>>
重定向 2 <
管道符号 |
转义符 ^
逻辑命令符包括:&、&&、||

常用 DOS 命令分类速看

文件夹管理

cd 显示当前目录名或改变当前目录。
md 创建目录。
rd 删除一个目录。
dir 显示目录中的文件和子目录列表。
tree 以图形显示驱动器或路径的文件夹结构。
path 为可执行文件显示或设置一个搜索路径。
xcopy 复制文件和目录树。

文件管理

type 显示文本文件的内容。
copy 将一份或多份文件复制到另一个位置。
del 删除一个或数个文件。
move 移动文件并重命名文件和目录。(Windows XP Home Edition 中没有)
ren 重命名文件。
replace 替换文件。
attrib 显示或更改文件属性。
find 搜索字符串。
fc 比较两个文件或两个文件集并显示它们之间的不同

网络命令

ping 进行网络连接测试、名称解析
ftp 文件传输
net 网络命令集及用户管理
telnet 登录或检测远程端口是否可访问(telnet ip port)
ipconfig 显示、修改 TCP/IP 设置
msg 给用户发送消息,首先要知道对方的IP地址,接下来输入命令“msg /server:对方电脑IP * ”。在“*”后输入你要发送的内容即可
arp 显示、修改局域网的 IP 地址 - 物理地址映射列表
nslookup 检查网站IP地址,在提示符状态输入“nslookup 对方网站域名”即可出现结果
netsh wlan show  探秘Wi-Fi配置文件,操作方法:在提示符状态输入命令“netsh wlan show profile SSID key=clear”,输入完成后Windows会自动返回当前已连接WIFI的详细信息,包括SSID和连接密码。当前这里有一个前提,那就是现在已经成功连接了。

net user 查看本机账户情况:和ipconfig一样,net user也有很多衍生的命令后缀,比方说“net user xxx 123456 /add”,输入后就会在系统中创建一个名为“xxx”的新用户,而新用户密码则是“123456”。

net share 查看共享资源,操作方法:在cmd界面中输入“net share”查看所有已共享资源,然后输入“net share 要删除的共享文件夹 /delete”就可以了。


系统管理

at 安排在特定日期和时间运行命令和程序
shutdown 立即或定时关机或重启
tskill 结束进程
taskkill 结束进程(比 tskill 高级,但 WinXPHome 版中无该命令)
tasklist 显示进程列表(Windows XP Home Edition 中没有)
sc 系统服务设置与控制
reg 注册表控制台工具
powercfg 控制系统上的电源设置

系统信息和配置

systeminfo:显示关于操作系统的详细信息,如操作系统版本、安装日期、注册信息、主机名等。
hostname:显示计算机的主机名。
ipconfig:显示计算机的网络配置信息,如 IP 地址、子网掩码、默认网关等。
ping:测试网络连接的命令。
tracert:跟踪网络数据包的路径。
netstat:显示网络统计信息和连接状态。如 netstat -a 可以显示所有活动的网络连接和监听端口。
tasklist:显示当前运行的进程列表。如 tasklist 可以显示所有正在运行的进程及其相关信息。
msconfig:打开系统配置实用程序,允许配置启动项、服务、启动方式等。
regedit:打开注册表编辑器,允许编辑系统的注册表项。
systeminfo | findstr /B /C:"OS Name" /C:"OS Version":显示操作系统的名称和版本号。


对于以上列出的所有命令,在 cmd 中输入命令 +/? 即可查看该命令的帮助信息。如 find /?


批处理和脚本最常用命令

在CMD窗口中,可以使用批处理和脚本命令来自动化执行一系列的命令或操作。批处理文件是一种包含一组命令的文本文件,以扩展名 .bat 或 .cmd 结尾。下面是一些常用的批处理和脚本命令:

echo:显示文本消息。例如,echo Hello, World! 将在 CMD 窗口中显示 "Hello, World!"。

set:设置环境变量。例如,set MY_VAR=value 将设置名为 MY_VAR 的环境变量为 "value"。

if:条件语句。可以使用 if 命令根据条件执行不同的操作。例如:
if %ERRORLEVEL% equ 0 echo Success:如果上一个命令的返回值为 0,则显示 "Success"。
if exist file.txt echo File exists:如果名为 "file.txt" 的文件存在,则显示 "File exists"。

for:循环语句。可以使用 for 命令在一组数据上执行重复操作。例如:
for %%G in (1 2 3) do echo %%G:循环打印数字 1、2 和 3。
for /F "tokens=1,2" %%G in (file.txt) do echo %%G %%H:从名为 "file.txt" 的文件中读取每一行的第一个和第二个单词,并打印出来。

call:调用另一个批处理文件或脚本。例如,call script.bat 将调用名为 "script.bat" 的批处理文件。

goto:跳转到指定的标签。例如,goto label 将跳转到名为 "label" 的标签处。

pause:暂停批处理的执行,等待用户按下任意键继续。

这些是批处理和脚本中常用的命令,它们允许组织和控制一系列的命令,实现自动化的操作。可以创建一个文本文件,将这些命令按照需要的顺序编写到文件中,并将文件保存为扩展名为 .bat 或 .cmd 的批处理文件。然后通过在 CMD 窗口中执行该批处理文件,可以自动执行其中的命令和操作。


CMD 的常规用法

1.命令的参数和选项

在命令行中,命令可以接受不同的参数和选项来改变其行为或传递额外的信息。以下是命令的参数和选项的说明:

参数(Arguments):命令的参数是用于提供额外信息或指定操作对象的值。参数通常出现在命令名称之后,并且可以有一个或多个。例如,在 ping 命令中,你可以指定要测试连接的主机名或 IP 地址作为参数:ping www.example.com。

选项(Options):选项是用于修改命令的行为或提供特定功能的标志。选项通常以单个字符或长格式的单词表示,并且通常使用前缀 - 或 --。选项可以出现在命令名称之前或参数之后,可以是单个选项或多个选项的组合。例如,在 ls 命令中,你可以使用 -l 选项以长格式显示文件列表:ls -l。
单字符选项示例:-a、-b、-c。
长格式选项示例:--help、--verbose、--version。

参数和选项的顺序:通常,命令的参数在选项之后提供。例如,copy source.txt destination.txt 中的 source.txt 和 destination.txt 是参数,而不是选项。

参数和选项的组合:命令可以接受多个参数和选项的组合。例如,grep -r pattern . 中的 -r 是一个选项,pattern 是一个参数,. 是当前目录的参数。

短选项的组合:多个短选项可以组合在一起,以节省输入。例如,ls -l -a -h 可以简写为 ls -lah。

长选项的组合:多个长选项也可以组合在一起,以节省输入。例如,git log --oneline --graph --decorate 可以简写为 git log --oneline --graph --decorate。

帮助和使用说明:大多数命令都提供了帮助和使用说明,以了解命令的参数和选项的含义。通常可以在命令后面加上 --help 选项来获取帮助信息。例如,ls --help 将显示 ls 命令的使用说明。

要了解命令的具体参数和选项,请参考相关命令的文档或帮助信息。不同的命令有不同的参数和选项,因此要正确使用命令,建议查阅相应的文档以了解其用法和选项的含义。

2.管道和重定向

在命令行中,管道(Pipe)和重定向(Redirection)是用于处理命令输入和输出的重要概念。

管道(Pipe):管道用于将一个命令的输出作为另一个命令的输入,实现两个或多个命令之间的数据传递。管道使用 | 符号表示。例如,command1 | command2 表示将 command1 的输出作为 command2 的输入。

管道的作用是将前一个命令的输出结果传递给后一个命令进行处理,从而实现一系列命令的协作。通过管道,可以实现命令的组合和数据处理的灵活性。示例:
dir | findstr "txt":在当前目录下查找包含 "txt" 的文件列表。
cat file.txt | grep "pattern":从名为 "file.txt" 的文件中读取内容,并在其中搜索匹配 "pattern" 的行。

重定向(Redirection):重定向用于将命令的输入或输出从标准位置(通常是控制台)转向其他位置,如文件或设备。重定向使用特定的符号来指定操作。
>:将命令的输出重定向到文件,覆盖文件中的内容。例如,command > file.txt 将命令的输出写入到名为 "file.txt" 的文件中。
>>:将命令的输出重定向到文件,追加到文件的末尾。例如,command >> file.txt 将命令的输出追加到名为 "file.txt" 的文件中。
<:将文件中的内容作为命令的输入。例如,command < file.txt 将名为 "file.txt" 的文件中的内容作为命令的输入。
2>:将命令的错误输出重定向到文件。例如,command 2> error.txt 将命令的错误输出写入到名为 "error.txt" 的文件中。
|:将命令的输出通过管道传递给另一个命令进行处理,如前面所述。

示例:
dir > file.txt:将当前目录的文件列表输出到名为 "file.txt" 的文件中。
type file.txt | find "pattern" > result.txt:从名为 "file.txt" 的文件中读取内容,并在其中搜索匹配 "pattern" 的行,将结果写入到名为 "result.txt" 的文件中。

通过管道和重定向,可以灵活地处理命令的输入和输出,实现数据的流转和处理。这对于数据处理、文件操作和命令组合非常有用。在命令行中,了解如何使用管道和重定向可以提高工作效率和命令的灵活性。

3.批处理文件和脚本编写

批处理文件和脚本是一种用于自动化执行一系列命令或任务的脚本文件。它们使用特定的扩展名(如 .bat 或 .cmd)并包含一系列命令、条件语句和循环等,用于在命令提示符或批处理环境中执行一系列操作。以下是批处理文件和脚本编写的一般步骤:

打开文本编辑器:使用任何文本编辑器(如记事本、Notepad++、Sublime Text 等)打开一个新文件,该文件将成为批处理文件的内容。

写入命令:在文本编辑器中编写要执行的命令,每个命令占一行。批处理文件支持大多数命令行命令、系统命令和可执行程序。

添加条件语句和循环(可选):如果需要根据条件执行不同的命令或重复执行一系列命令,可以使用条件语句(如 IF、FOR)和循环语句(如 FOR、WHILE)。

保存文件:将文件保存到指定的位置,并使用适当的文件扩展名(如 .bat 或 .cmd)。

运行批处理文件:双击批处理文件,它将在命令提示符或批处理环境中执行其中的命令。

以下是一个简单的示例批处理文件:
@echo off
echo 欢迎使用批处理文件
echo 当前日期是:%date%
echo 当前时间是:%time%
pause

这个批处理文件使用 echo 命令显示欢迎消息、当前日期和时间,并使用 pause 命令等待用户按下任意键。

通过编写批处理文件,可以自动化执行一系列命令和任务,减少手动输入命令的工作量,提高效率。你可以使用条件语句、循环和其他命令来根据需要控制批处理文件的行为。请注意,批处理文件的编写和执行可能需要一定的技术知识和经验,因此建议参考批处理文件的文档或教程以深入了解更多的用法和技巧。


CMD 的实际应用场景

1.系统维护和故障排查

系统维护和故障排查是确保计算机系统正常运行和解决系统故障的关键任务。以下是一些常见的系统维护和故障排查步骤和技术:

监控系统状态:定期监控系统的性能和健康状况,以便及时发现潜在的问题。可以使用系统监控工具或命令行工具来检查 CPU 使用率、内存使用情况、磁盘空间、网络连接等指标。

更新和维护软件:及时更新操作系统、应用程序和安全补丁,以修复已知的漏洞和问题。确保所有安装的软件都是最新版本,并执行定期的系统维护任务,如清理临时文件、清理磁盘碎片等。

备份和恢复:定期备份关键数据和系统配置,并测试恢复过程,以确保在系统故障或数据丢失时能够快速恢复。使用备份工具或云服务来创建备份,并确保备份数据存储在安全的位置。

日志分析:检查系统日志和应用程序日志,查找异常事件、错误消息或警告。了解日志文件的位置和格式,并使用日志分析工具来筛选和分析日志数据,以识别潜在的问题和异常情况。
故障排查:在发生系统故障或错误时,使用故障排查技术来识别和解决问题。故障排查的步骤可能包括检查错误消息、重启系统、检查配置文件、查找故障设备或组件等。根据具体情况,可能需要使用网络分析工具、性能监视工具或其他故障排查工具来诊断问题。

硬件检查:如果出现系统故障或性能下降,可能需要检查硬件组件,如内存、硬盘驱动器、网卡等。可以运行硬件诊断工具来测试硬件的稳定性和健康状况。

安全审计:定期审计系统的安全性,检查用户权限、访问控制策略、防火墙设置等。确保系统的安全性和合规性,并采取必要的安全措施来保护系统免受恶意攻击和数据泄露。

文档记录:记录系统维护和故障排查过程中的重要信息,包括执行的操作、发现的问题和解决方案。这些文档可以作为参考资料,帮助其他团队成员了解系统和处理类似问题。

系统维护和故障排查需要系统管理员或技术支持人员具备一定的技术知识和经验。当面临问题时,重要的是采取系统化的方法,一步一步地排除故障,并记录相关信息,以便今后的参考和持续改进。此外,定期进行系统维护和预防性措施,可以减少故障和提高系统的可靠性和性能。

2.自动化任务和批处理作业

自动化任务和批处理作业是在计算机系统中执行预定义操作的自动化过程。通过自动化任务和批处理作业,可以减少手动操作的工作量,提高效率,并确保任务在规定的时间和条件下按计划执行。下面是有关自动化任务和批处理作业的一些重要信息:

自动化任务:自动化任务是指通过编程或脚本来执行一系列操作的过程。这些任务可以是简单的操作,例如文件备份、数据导入等,也可以是复杂的任务,例如定时报告生成、系统监控等。通过编写脚本或使用自动化工具,可以自动执行这些任务,减少手动干预,提高工作效率。

批处理作业:批处理作业是一系列命令或任务的集合,按照特定的顺序和条件执行。通常,批处理作业由批处理脚本或作业调度程序控制。这些作业可以在预定的时间间隔内运行,或者在特定的事件或触发条件发生时执行。批处理作业通常用于定期执行重复性任务,如数据处理、报表生成、系统维护等。

批处理语言:批处理语言是一种用于编写批处理脚本的编程语言。常见的批处理语言包括 Windows 系统的批处理文件(.bat、.cmd)和 Linux/Unix 系统的 shell 脚本(bash、sh)。批处理语言提供了条件语句、循环结构、变量操作和命令执行等功能,以实现自动化任务和批处理作业。

作业调度程序:作业调度程序是一种用于管理和控制批处理作业的工具或系统。它可以设置作业的执行时间、依赖关系、优先级和报告等,确保作业按计划执行,并提供监控和日志记录等功能。常见的作业调度程序包括 Windows 系统的任务计划程序和 Linux/Unix 系统的 cron 任务调度。

自动化工具:有许多自动化工具可用于执行自动化任务和批处理作业。这些工具提供了丰富的功能和接口,可根据需求自定义和扩展。

通过自动化任务和批处理作业,可以减少手动操作的错误和工作量,提高效率和一致性,并确保任务的及时执行。这对于系统维护、数据处理、报告生成、定时任务等方面非常有用,并在大规模系统和复杂环境中发挥重要作用。

3.网络管理和配置

网络管理和配置是指管理和配置计算机网络以确保其正常运行和安全性。它涉及一系列任务和技术,包括网络设备管理、IP地址分配、网络安全配置、网络性能监控等。以下是网络管理和配置的一些重要方面:

网络设备管理:网络设备管理涉及对路由器、交换机、防火墙等网络设备的配置和监控。这包括设备的启动配置、端口配置、路由配置、安全配置等。通过网络设备管理,可以确保网络设备按照预期方式工作,并满足网络需求。

IP地址分配:IP地址是计算机在网络中的唯一标识。在网络管理中,需要进行IP地址的合理分配和管理。这包括确定IP地址的范围、子网划分、DHCP服务器配置等。正确的IP地址分配可以确保网络中的设备可以互相通信并访问互联网。

网络安全配置:网络安全是网络管理中至关重要的方面。它涉及配置防火墙、入侵检测系统(IDS)、虚拟专用网络(VPN)等安全措施,以保护网络免受未经授权的访问、数据泄露和恶意攻击。网络安全配置还包括访问控制列表(ACL)、身份验证和加密等措施。

网络性能监控:网络性能监控是对网络运行情况进行实时监测和分析,以确保网络的高效运行。通过使用网络监控工具,可以监视带宽利用率、延迟、丢包率、流量分布等指标,并根据监测结果进行故障排除和性能优化。

配置管理:配置管理涉及记录和管理网络设备和服务的配置信息。这包括设备的配置文件备份、版本控制、变更管理等。通过配置管理,可以追踪和管理网络配置的变化,以便在需要时进行还原或回滚。

远程管理:远程管理允许管理员通过远程访问方式对网络进行管理和配置。这可以通过远程登录协议(如SSH)或远程管理工具实现。远程管理方便了管理员对分布式网络进行管理,并减少了现场操作的需求。

网络管理和配置是保持网络安全、可靠和高效运行的关键任务。它要求管理员具备深入的网络知识和技能,并密切关注网络的变化和需求,以适应不断变化的环境和技术。同时,网络管理和配置需要定期进行维护和更新,以确保网络的稳定性和性能。


Windows Batch 常用命令

1. echo 和 @
回显命令
@                     #关闭单行回显
echo off              #从下一行开始关闭回显
@echo off             #从本行开始关闭回显。一般批处理第一行都是这个
echo on               #从下一行开始打开回显
echo                  #显示当前是 echo off 状态还是 echo on 状态
echo.                 #输出一个” 回车换行”,空白行
                         #(同 < span class="built_in">echo, echo; echo+ echo[ echo] echo/ echo)

2. errorlevel
echo %errorlevel%
 每个命令运行结束,可以用这个命令行格式查看返回码
 默认值为 < span class="number">0,一般命令执行出错会设 errorlevel 为 < span class="number">1

3. dir
显示文件夹内容
dir                  #显示当前目录中的文件和子目录
dir /a               #显示当前目录中的文件和子目录,包括隐藏文件和系统文件
dir c: /a:d          #显示 C 盘当前目录中的目录
dir c: /a:-d         #显示 C 盘根目录中的文件
dir c: /b/p         #/b 只显示文件名,/p 分页显示
dir *.exe /s         #显示当前目录和子目录里所有的. exe 文件

4. cd
切换目录
cd                  #进入根目录
cd                   #显示当前目录
cd /d d:sdk         #可以同时更改盘符和目录

5. md
创建目录
md d:abc          #如果 d:a 不存在,将会自动创建中级目录
# 如果命令扩展名被停用,则需要键入 mkdir abc。

6. rd
删除目录
rd abc               #删除当前目录里的 abc 子目录,要求为空目录
rd /s/q d:temp      #删除 d:temp 文件夹及其子文件夹和文件,/q 安静模式

7. del
删除文件
del d:test.txt      #删除指定文件,不能是隐藏、系统、只读文件
del /q/a/f d:temp*.*
 删除 d:temp 文件夹里面的所有文件,包括隐藏、只读、系统文件,不包括子目录
del /q/a/f/s d:temp*.*
 删除 d:temp 及子文件夹里面的所有文件,包括隐藏、只读、系统文件,不包括子目录

8. ren
重命名命令
ren d:temp tmp      #支持对文件夹的重命名

9. cls
清屏

10. type
显示文件内容
type c:boot.ini     #显示指定文件的内容,程序文件一般会显示乱码
type *.txt           #显示当前目录里所有. txt 文件的内容

11. copy
拷贝文件
copy c:test.txt d:test.bak
 复制 c:test.txt 文件到 d: ,并重命名为 test.bak
copy con test.txt
从屏幕上等待输入,按 Ctrl+Z 结束输入,输入内容存为 test.txt 文件
con 代表屏幕,prn 代表打印机,nul 代表空设备
copy 1.txt + 2.txt 3.txt
 合并 1.txt 和 2.txt 的内容,保存为 3.txt 文件
 如果不指定 3.txt ,则保存到 1.txt
copy test.txt +
复制文件到自己,实际上是修改了文件日期

12. title
设置 < span class="built_in">cmd 窗口的标题
title 新标题         #可以看到 < span class="built_in">cmd 窗口的标题栏变了

13. ver
显示系统版本

14. label 和 vol
设置卷标
vol  #显示卷标
label  #显示卷标,同时提示输入新卷标
label c:system  #设置 C 盘的卷标为 system

15. pause
暂停命令

16. rem 和 ::
注释命令
注释行不执行操作

17. date 和 time
日期和时间
date  #显示当前日期,并提示输入新日期,按 "回车" 略过输入
date /t  #只显示当前日期,不提示输入新日期
time  #显示当前时间,并提示输入新时间,按 "回车" 略过输入
time /t  #只显示当前时间,不提示输入新时间

18. goto 和 :
跳转命令
:label         #行首为: 表示该行是标签行,标签行不执行操作
goto label     #跳转到指定的标签那一行

19. find(外部命令)
 查找命令
find "abc" c:test.txt  在 c:test.txt 文件里查找含 abc 字符串的行,如果找不到,将设 errorlevel 返回码为 1
find /i “abc” c:test.txt
查找含 abc 的行,忽略大小写
find /c "abc" c:test.txt
显示含 abc 的行的行数

20. more(外部命令)
逐屏显示
more c:test.txt     #逐屏显示 c:test.txt 的文件内容

21. tree
显示目录结构
tree d:  #显示 < span class="title">D 盘的文件目录结构

22. &
顺序执行多条命令,而不管命令是否执行成功

23 &&
 顺序执行多条命令,当碰到执行出错的命令后将不执行后面的命令
find "ok" c:test.txt && echo 成功
 如果找到了 "ok" 字样,就显示 "成功",找不到就不显示

24. ||
顺序执行多条命令,当碰到执行正确的命令后将不执行后面的命令
find "ok" c:test.txt || echo 不成功
如果找不到 "ok" 字样,就显示 "不成功",找到了就不显示

25. |
管道命令
dir *.* /s/a | find /c ".exe"
 管道命令表示先执行 dir 命令,对其输出的结果执行后面的 find 命令
 该命令行结果:输出当前文件夹及所有子文件夹里的.exe 文件的个数
type c:test.txt|more
 这个和 more c:test.txt 的效果是一样的

26. > 和 >>
输出重定向命令
> 清除文件中原有的内容后再写入
>> 追加内容到文件末尾,而不会清除原有的内容
 主要将本来显示在屏幕上的内容输出到指定文件中
 指定文件如果不存在,则自动生成该文件
type c:test.txt >prn
 屏幕上不显示文件内容,转向输出到打印机
echo hello world>con
 在屏幕上显示 < span class="title">hello world,实际上所有输出都是默认 >con 的
copy c:test.txt f: >nul
 拷贝文件,并且不显示 "文件复制成功" 的提示信息,但如果 < span class="title">f 盘不存在,还是会显示出错信息
copy c:test.txt f: >nul 2>nul
 不显示”文件复制成功”的提示信息,并且 < span class="title">f 盘不存在的话,也不显示错误提示信息
echo ^^W ^> ^W>c:test.txt
 生成的文件内容为 ^W > W
^ 和 > 是控制命令,要把它们输出到文件,必须在前面加个 ^ 符号

27. <
从文件中获得输入信息,而不是从屏幕上
 一般用于 date time label 等需要等待输入的命令
@echo off
echo 2005-05-01>temp.txt
date <temp.txt
del temp.txt
 这样就可以不等待输入直接修改当前日期

28. %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 %*
命令行传递给批处理的参数
%0 批处理文件本身
%1 第一个参数
%9 第九个参数
%* 从第一个参数开始的所有参数

批参数 (%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 的输出行。
可以参照 call/? 或 for/? 看出每个参数的含意
echo load"%%1""%%2">c:test.txt
生成的文件内容为 load "%1" "%2"
批处理文件里,用这个格式把命令行参数输出到文件

29. if
判断命令
if "%1"=="/a" echo 第一个参数是 /a
if /i "%1" equ "/a" echo 第一个参数是 /a
/i 表示不区分大小写,equ 和 == 是一样的,其它运算符参见 if/?
if exist c:test.bat echo 存在 < span class="title">c:test.bat 文件
if not exist c:windows (
     echo 不存在 < span class="title">c:windows 文件夹
     )
if exist c:test.bat (
     echo 存在 < span class="title">c:test.bat
     ) else (
     echo 不存在 < span class="title">c:test.bat
     )

30. setlocal 和 endlocal
设置”命令扩展名”和”延缓环境变量扩充”
SETLOCAL ENABLEEXTENSIONS             #启用 "命令扩展名"
SETLOCAL DISABLEEXTENSIONS            #停用 "命令扩展名"
SETLOCAL ENABLEDELAYEDEXPANSION       #启用 "延缓环境变量扩充"
SETLOCAL DISABLEDELAYEDEXPANSION      #停用 "延缓环境变量扩充"
ENDLOCAL                              #恢复到使用 < span class="title">SETLOCAL 语句以前的状态
“命令扩展名” 默认为启用
“延缓环境变量扩充” 默认为停用
 批处理结束系统会自动恢复默认值
 可以修改注册表以禁用 "命令扩展名",详见 cmd /? 。所以用到 "命令扩展名" 的程
 序,建议在开头和结尾加上 SETLOCAL ENABLEEXTENSIONS 和 ENDLOCAL 语句,以确
 保程序能在其它系统上正确运行
"延缓环境变量扩充" 主要用于 if 和 for 的符合语句,在 set 的说明里有其实用例程

31. set
设置变量,引用变量可在变量名前后加 % ,即 % 变量名 %
set                     #显示目前所有可用的变量,包括系统变量和自定义的变量
echo %SystemDrive%      #显示系统盘盘符。系统变量可以直接引用
set p                   #显示所有以 < span class="title">p 开头的变量,要是一个也没有就设 < span class="title">errorlevel=1
set p=aa1bb1aa2bb2      #设置变量 < span class="title">p,并赋值为 = 后面的字符串,即 < span class="title">aa1bb1aa2bb2
echo %p%                #显示变量 < span class="title">p 代表的字符串,即 < span class="title">aa1bb1aa2bb2
echo %p:~6%             #显示变量 < span class="title">p 中第 6 个字符以后的所有字符,即 < span class="title">aa2bb2
echo %p:~6,3%           #显示第 6 个字符以后的 3 个字符,即 < span class="title">aa2
echo %p:~0,3%           #显示前 3 个字符,即 < span class="title">aa1
echo %p:~-2%            #显示最后面的 2 个字符,即 < span class="title">b2
echo %p:~0,-2%          #显示除了最后 2 个字符以外的其它字符,即 < span class="title">aa1bb1aa2b
echo %p:aa=c%           #用 < span class="title">c 替换变量 < span class="title">p 中所有的 < span class="title">aa,即显示 < span class="title">c1bb1c2bb2
echo %p:aa=%            #将变量 < span class="title">p 中的所有 < span class="title">aa 字符串置换为空,即显示 1bb12bb2
echo %p:*bb=c%          #第一个 < span class="title">bb 及其之前的所有字符被替换为 < span class="title">c,即显示 < span class="title">c1aa2bb2
set p=%p:*bb=c%         #设置变量 < span class="title">p,赋值为 %p:*bb=c% ,即 < span class="title">c1aa2bb2
set /a p=39             #设置 < span class="title">p 为数值型变量,值为 39
set /a p=39/10          #支持运算符,有小数时用去尾法,39/10=3.9,去尾得 3,p=3
set /a p=p/10           #用 /a 参数时,在 = 后面的变量可以不加 % 直接引用
set /a p=”1&0″          #” 与”运算,要加引号。其它支持的运算符参见 < span class="title">set/?
set p=                  #取消 < span class="title">p 变量
set /p p= 请输入
屏幕上显示”请输入”,并会将输入的字符串赋值给变量 < span class="title">p
注意这条可以用来取代 choice 命令
注意变量在 if 和 for 的复合语句里是一次性全部替换的,如
@echo off
set p=aaa
if %p%==aaa (
     echo %p%
     set p=bbb
     echo %p%
     )
结果将显示
aaa
aaa
因为在读取 if 语句时已经将所有 %p% 替换为 < span class="title">aaa
这里的 "替换",在 /? 帮助里就是指 "扩充"、"环境变量扩充"
可以启用”延缓环境变量扩充”,用 ! 来引用变量,即 ! 变量名!
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
set p=aaa
if %p%==aaa (
     echo %p%
     set p=bbb
     echo !p!
     )
ENDLOCAL
结果将显示
aaa
bbb
 还有几个动态变量,运行 set 看不到
%CD%                   #代表当前目录的字符串
%DATE%                 #当前日期
%TIME%                 #当前时间
%RANDOM%               #随机整数,介于 0~32767
%ERRORLEVEL%           #当前 ERRORLEVEL 值
%CMDEXTVERSION%        #当前命令处理器扩展名版本号
%CMDCMDLINE%           #调用命令处理器的原始命令行
可以用 < span class="title">echo 命令查看每个变量值,如 echo %time%
注意 %time% 精确到毫秒,在批处理需要延时处理时可以用到

32. start
批处理中调用外部程序的命令,否则等外部程序完成后才继续执行剩下的指令

33. call
批处理中调用另外一个批处理的命令,否则剩下的批处理指令将不会被执行
有时有的应用程序用 < span class="title">start 调用出错的,也可以 < span class="title">call 调用

34. choice (外部命令)
选择命令
让用户输入一个字符,从而选择运行不同的命令,返回码 errorlevel 为 1234……
win98 里是choice.com
win2000pro 里没有,可以从 win98 里拷过来
win2003 里是 choice.exe
choice /N /C y /T 5 /D y>nul
延时 5 秒

35. assoc 和 ftype
文件关联
assoc 设置'文件扩展名'关联,关联到'文件类型'
ftype 设置'文件类型'关联,关联到'执行程序和参数'
 当你双击一个.txt 文件时,windows 并不是根据.txt 直接判断用 notepad.exe 打开
 而是先判断.txt 属于 txtfile '文件类型'
再调用 txtfile 关联的命令行 txtfile=%SystemRoot%system32NOTEPAD.EXE %1
可以在 "文件夹选项"→"文件类型" 里修改这 2 种关联
assoc            #显示所有'文件扩展名'关联
assoc .txt       #显示.txt 代表的'文件类型',结果显示 .txt=txtfile
assoc .doc       #显示.doc 代表的'文件类型',结果显示 .doc=Word.Document.8
assoc .exe       #显示.exe 代表的'文件类型',结果显示 .exe=exefile
ftype            #显示所有'文件类型'关联
ftype exefile    #显示 < span class="title">exefile 类型关联的命令行,结果显示 exefile="%1" %*
assoc .txt=Word.Document.8
 设置.txt 为 < span class="title">word 类型的文档,可以看到.txt 文件的图标都变了
assoc .txt=txtfile
 恢复.txt 的正确关联
ftype exefile="%1" %*
 恢复 exefile 的正确关联
 如果该关联已经被破坏,可以运行 command.com ,再输入这条命令

36. pushd 和 popd
切换当前目录
@echo off
c: & cd & md mp3        #在 C: 建立 mp3 文件夹
md d:mp4                #在 D: 建立 mp4 文件夹
cd /d d:mp4             #更改当前目录为 d:mp4
pushd c:mp3             #保存当前目录,并切换当前目录为 c:mp3
popd                     #恢复当前目录为刚才保存的 d:mp4

37. for
循环命令,这个比较复杂,请对照 for /? 来看
for %%i in (c: d: e: f:) do echo %%i
 依次调用小括号里的每个字符串,执行 do 后面的命令
 注意 %%i,在批处理中 for 语句调用参数用 2 个 %
默认的字符串分隔符是 "空格键","Tab 键","回车键"
for %%i in (*.txt) do find "abc" %%i
对当前目录里所有的 < span class="title">txt 文件执行 find 命令
for /r . %%i in (*.txt) do find "abc" %%i
 在当前目录和子目录里所有的.txt 文件中搜索包含 abc 字符串的行
for /r . %%i in (.) do echo %%~pni
 显示当前目录名和所有子目录名,包括路径,不包括盘符
for /r d:mp3 %%i in (*.mp3) do echo %%i>>d:mp3.txt
 把 d:mp3 及其子目录里的 < span class="title">mp3 文件的文件名都存到 d:mp3.txt 里去
for /l %%i in (2,1,8) do echo %%i
 生成 2345678 的一串数字,2 是数字序列的开头,8 是结尾,1 表示每次加 1
for /f %%i in ('set') do echo %%i
对 set 命令的输出结果循环调用,每行一个
for /f "eol=P" %%i in ('set') do echo %%i
 取 set 命令的输出结果,忽略以 P 开头的那几行
for /f %%i in (d:mp3.txt) do echo %%i
 显示 d:mp3.txt 里的每个文件名,每行一个,不支持带空格的名称
for /f "delims=" %%i in (d:mp3.txt) do echo %%i
 显示 d:mp3.txt 里的每个文件名,每行一个,支持带空格的名称
for /f "skip=5 tokens=4" %%a in ('dir') do echo %%a
 对 dir 命令的结果,跳过前面 5 行,余下的每行取第 4 列
 每列之间的分隔符为默认的 "空格"
可以注意到 dir 命令输出的前 5 行是没有文件名的
for /f "tokens=1,2,3 delims=-" %%a in ('date /t') do (
     echo %%a
     echo %%b
     echo %%c
     )
对 date /t 的输出结果,每行取 1、2、3 列
第一列对应指定的 %%a ,后面的 %%b 和 %%c 是派生出来的,对应其它列
分隔符指定为 - 和 "空格",注意 delims=- 后面有个 "空格"
其中 tokens=1,2,3 若用 tokens=1-3 替换,效果是一样的
for /f "tokens=2* delims=-" %%a in ('date /t') do echo %%b
取第 2 列给 %%a ,其后的列都给 %%b

38. subst (外部命令)
映射磁盘。
subst z: serverd      #这样输入 < span class="title">z: 就可以访问 < span class="title">serverd 了
subst z: /d              #取消该映射
subst                    #显示目前所有的映时

39. xcopy (外部命令)
文件拷贝
xcopy d:mp3 e:mp3 /s/e/i/y
复制 d:mp3 文件夹、所有子文件夹和文件到 e: ,覆盖已有文件
加 /i 表示如果 e: 没有 mp3 文件夹就自动新建一个,否则会有询问


Cmd 竞品分析

PowerShell和其他替代品

PowerShell是一种新起的功能强大的命令行壳程序和脚本语言,用于管理和自动化Windows操作系统。它提供了丰富的命令、脚本和功能,使系统管理员能够更高效地管理和配置Windows环境;除了PowerShell,还有一些提供了类似的功能和目的替代品,以下是一些常见的替代品:

Bash(Bourne Again SHell):Bash是Unix和Linux操作系统中广泛使用的命令行壳程序。它提供了强大的命令解释和脚本编程能力,支持各种操作系统级任务和自动化需求。Bash脚本通常用于系统管理、任务自动化和软件部署等方面。

Python:Python是一种通用的高级编程语言,也可以用于系统管理和自动化任务。Python具有简洁易读的语法和丰富的第三方库,使得编写系统管理脚本和任务自动化脚本变得相对简单。Python在网络管理、数据处理和配置管理等方面具有广泛的应用。

Perl:Perl是一种解释型的脚本语言,特别适用于文本处理和系统管理任务。其具有强大的正则表达式支持和丰富的模块库,使其成为处理日志文件、数据转换和网络管理的理想选择。

Ruby:Ruby是一种简洁而灵活的脚本语言,具有优雅的语法和丰富的内置函数库。Ruby的脚本编写方式适合于系统管理和任务自动化,并在Web开发领域得到广泛应用。


与Linux下的Shell类似,CMD为Windows内置的命令行操作工具,与其他脚本语言有异,其对操作系统提供了更好的支持,有着难以撼动的地位。


Cmd命令参考(108个)

1、calc:启动计算器
2、appwiz.cpl:程序和功能
3、certmgr.msc:证书管理实用程序
4、charmap:启动字符映射表
5、chkdsk.exe:Chkdsk磁盘检查(管理员身份运行命令提示符)
6、cleanmgr: 打开磁盘清理工具
7、cliconfg:SQL SERVER 客户端网络实用工具
8、cmstp:连接管理器配置文件安装程序
9、cmd.exe:CMD命令提示符
10、自动关机命令:
shutdown -s -t 30:表示30秒后自动关机,中间带有空格。
shutdown -a :取消定时关机
Shutdown -r -t 30:表示30秒后自动重新启动
rundll32 user32.dll,LockWorkStation:表示锁定计算机
11、colorcpl:颜色管理,配置显示器和打印机等中的色彩
12、CompMgmtLauncher:计算机管理
13、compmgmt.msc:计算机管理
14、credwiz:备份或还原储存的用户名和密码
15、comexp.msc:打开系统组件服务
16、control:控制面版
17、dcomcnfg:打开系统组件服务
18、Dccw:显示颜色校准
19、devmgmt.msc:设备管理器
20、desk.cpl:屏幕辨别率
21、dfrgui:优化驱动器 Win 7→dfrg.msc:磁盘碎片整理程序
22、dialer:电话拨号程序
23、diskmgmt.msc:磁盘管理
24、dvdplay:DVD播放器
25、dxdiag:检查DirectX信息
26、eudcedit:造字程序
27、eventvwr:事件查看器
28、explorer:打开资源管理器
29、Firewall.cpl:Win防火墙
30、FXSCOVER:传真封面编辑器
31、fsmgmt.msc:共享文件夹管理器
32、gpedit.msc:组策略
33、hdwwiz.cpl:设备管理器
34、inetcpl.cpl:Internet属性
35、intl.cpl:区域
36、iexpress:木马捆绑工具,系统自带
37、joy.cpl:游戏控制器
38、logoff:注销命令
39、lusrmgr.msc:本地用户和组
40、lpksetup:语言包安装/删除向导,安装向导会提示下载语言包
41、lusrmgr.msc:本机用户和组
42、main.cpl:鼠标属性
43、mmsys.cpl:声音
44、magnify:放大镜实用程序
45、mem.exe:显示内存运用情况(如果直接运行无效,可以先管理员身份运行命令提示符,在命令提示符里输入mem.exe>d:a.txt 即可打开d盘查看a.txt,里面的就是内存运用情况了。当然什么盘什么文件名可自己决定。)
46、MdSched:Win内存诊断程序
47、mmc:打开控制台
48、mobsync:同步命令
49、mplayer2:简易widnows media player
50、Msconfig.exe:系统配置实用程序
51、msdt:微软支持诊断工具
52、msinfo32:系统信息
53、mspaint:画图
54、Msra:Win远程协助
55、mstsc:远程桌面连接
56、NAPCLCFG.MSC:客户端配置
57、ncpa.cpl:网络连接
58、narrator:屏幕“讲述人”
59、Netplwiz:高级用户帐户控制面板,设置登陆安全相关的选项
60、netstat : an(TC)命令检查接口
61、notepad:打开记事本
62、Nslookup:IP地址侦测器
63、ODBCad32:ODBC数据源管理器
64、OptionalFeatures:打开“打开或关闭Win功能”对话框
65、osk:打开屏幕键盘
66、perfmon.msc:计算机性能监测器
67、perfmon:计算机性能监测器
68、powerShell:提供强大远程处理能力
69、printmanagement.msc:打印管理
70、powercfg.cpl:电源选项
71、psr:问题步骤记录器
72、Rasphone:网络连接
73、Recdisc:创建系统修复光盘
74、Resmon:资源监视器
75、Rstrui:系统还原
76、regedit.exe:注册表
77、regedt32:注册表编辑器
78、rsop.msc:组策略结果集
79、sdclt:备份状态与配置,就是查看系统是否已备份
80、secpol.msc:本地安全策略
81、services.msc:本地服务设置
82、sfc /scannow:扫描错误并复原/windows文件保护
83、sfc.exe:系统文件检查器
84、shrpubw:创建共享文件夹
85、sigverif:文件签名验证程序
86、slui:Win激活,查看系统激活信息
87、slmgr.vbs -dlv :显示详细的许可证信息
88、snippingtool:截图工具,支持无规则截图
89、soundrecorder:录音机,没有录音时间的限制
90、StikyNot:便笺
91、sysdm.cpl:系统属性
92、sysedit:系统配置编辑器
93、syskey:系统加密,一旦加密就不能解开,保护系统的双重密码
94、taskmgr:任务管理器(旧版)
95、TM任务管理器(新版)
96、taskschd.msc:任务计划程序
97、timedate.cpl:日期和时间
98、UserAccountControlSettings:用户账户控制设置
99、utilman:辅助工具管理器
100、wf.msc:高级安全Win防火墙
101、WFS:Win传真和扫描
102、wiaacmgr:扫描仪和拍照机向导
103、winver:关于Win
104、wmimgmt.msc:打开windows管理体系结构(WMI)
105、write:写字板
106、wscui.cpl:操作中心
107、wuapp:Win更新
108、wscript:windows脚本宿主设置