教育网站建设的意义,wordpress建英文,怎样注册商标,电销精准客户资源1. 引言#xff1a;为什么要使用命令行在 DOS 时代#xff0c;人们只能依靠输入命令同计算机互交。而现在#xff0c;微软的 Windows 操作系统已得到了广泛使用#xff0c;我们处理日常事务也大多使用基于图形用户界面#xff08;GUI#xff0c;Graphics User Interface为什么要使用命令行在 DOS 时代人们只能依靠输入命令同计算机互交。而现在微软的 Windows 操作系统已得到了广泛使用我们处理日常事务也大多使用基于图形用户界面GUIGraphics User Interface的应用程序命令行正在逐渐被人们淡忘。但我们同时也看到系统自带的命令行解释器从 Windows 98 的 http://command.com 变成 Windows XP 的 cmd.exe 直到 Windows 7 的 PowerShell 功能大大增强了。命令行有它独特的价值在某些方面的表现是 GUI 程序无法获得的下面举例来说Windows 系统有时会出现故障或是中了病毒、木马系统根本无法引导。而整个 DOS 操作系统可装入一张软盘只要用一张启动盘就可进入 DOS 从而进行备份数据、修复系统等工作。如果你不会 DOS 命令修复系统便无从谈起。当然还有一些别的修复工具比如 WinPE 、故障恢复控制台等也能用来修复系统。但 DOS 启动盘具有制作简单、体积小等优点。在 DOS 中使用的命令请参考附录1。Windows 命令行中提供了一系列实用小工具极为绿色。比如 ping、netstat、diskpart 等命令。这方面可参考“附录2”。学习 Windows 命令行有助于我们更深入地了解 Windows 的工作方式。很多软件既有图形前端又有命令行版可供选择。如 7-Zip、WinRAR两者都是压缩软件皆有命令行版微软的 cabarc用来制作 CAB 压缩包也是命令行程序。使用命令行版的软件通常具有占用资源少、运行速度快、可通过脚本进行批量处理等优点。当然命令行也有其缺点。比如界面不够美观手工输入命令较为繁琐这可以通过一些输入技巧来弥补详见 3.4 节学习起来较为困难等。本文涵盖了 Windows 命令行的各方面的内容从最简单的文件名命名规范到编写脚本文件主要是基础知识。本文主要是为那些 Windows 命令行新手而写的对读者的技术水平或使用计算机的经历不做任何要求。不同的 Windows 在命令行处理上也有细微差异我用的系统是 Windows XP 和 Windows 7 后面一些命令的运行结果是基于此。2. 文件系统基础计算机内各种信息如程序、数据等都是以文件形式存在的使用计算机可以说是对各种文件的操作管理。文件系统是 Windows 的一个组件它能够让用户查看、组织以及保护存储设备上的文件和目录并与其进行互交。在“我的电脑”中选中任一本地磁盘单击右键 - “属性”在弹出的“属性”对话框中可看到该磁盘分区的文件系统。Windows 中常见的文件系统有 FAT 、FAT32 、NTFS 、ISO9660或称 CDFS 其中 ISO9660 用于光盘其他用于磁盘。不同的文件系统有某些参数的差异比如 FAT32 允许创建的单个文件不得超过 4GiB 但 NTFS 可以允许创建超过 4GiB 的文件又如 FAT32 不保留大小写而 NTFS 保留大小写NTFS 还支持更多特性比如文件的硬链接junction。2.1 分区与盘符硬盘空间的划分称作分区。每个分区上需要有一个文件系统文件系统负责决定文件在硬盘上的实际空间排布方式。我们平时说的 C: 、 D: 等即指磁盘分区这些磁盘分区可能位于同一块物理硬盘上也可能位于不同的两块硬盘。 C: 、 D: 等称为盘符或驱动器号只是系统的一种表示符号可以更改或重新分配。一个分区通常只包含一个文件系统。2.2 文件与名称文件名称由文件名和扩展名组成两者由小圆点分隔扩展名通常是用来表示文件的类别。Windows 中整个文件名称最长 255 个字符一个中文字算两个字符DOS 中文件名最长 8 字符扩展名最长 3 字符称为 DOS 8.3 命名规则。文件名称可仅有前半部即无扩展名如文件名称最短可以是“1”、“C”等。给文件命名还应注意以下规则文件名不能包含下列任何字符之一共 9 个\/:*?|。不能单独使用“设备名”作文件名。“设备名”包括con aux com0 ~ com9 lpt0 ~ lpt9 nul prn 。文件名不区分大小写如 A.txt 和 a.TxT 表示同一文件。你也许会发现很多文件没有扩展名其实不然。这是因为 Windows 在默认情况下会隐藏大部分文件的扩展名。如果希望显示所有文件的扩展名的话打开“我的电脑”“工具”菜单 - “文件夹选项”再在“查看”选项卡中去掉“隐藏已知文件类型的扩展名”。另外Windows 是根据文件的扩展名来决定对文件的操作的而不是根据内容。例如把一个文本文件txt的扩展名改为“RM”再双击它Windows 就会调用某个安装在你电脑上的媒体播放器如 RealPlayer来打开它。2.3 文件的目录管理把大量文件全放在一个目录里操作系统查找一个给定的文件时就要花较长时间同时删除时也易误删除对用户来说极不方便。于是操作系统采用了目录的分级管理。将一个用户的同一类文件放在某个单独的目录下和磁盘上所有其他文件分开来这样的目录文件使用和管理起来要方便和科学得多。目录好比书的章、节等不同层次呈树形结构。除根目录外其他目录称为子目录。子目录下又可再带子目录。2.4 绝对路径和相对路径当我们建立或修改一个文件时必须向 Windows 指明这个文件的位置这须知道三件事驱动器、文件所在目录和文件名这些信息构成一个路径。路径是由一系列目录名组成的这些目录名之间用“\”分开也可以把文件名文件名和最后一个目录也用“\”分开和驱动器号包括在内。例如C:\WINDOWS\explorer.exe 。每个文件都有一个绝对路径和一个相对路径。绝对路径是指文件在文件系统中的准确位置如 C:\WINDOWS\notepad.exe 。命令行解释器可以记住一个指定的目录称为当前目录相对路径即指文件相对于当前目录的位置。例如如果用户在 C:\WINDOWS 目录下则 C:\WINDOWS\notepad.exe 的相对路径是 notepad.exe 。这类似于家庭住址。如果是将自己的地址告诉住在同一座城市的人可能会说自己住在某条街过去两条街。这就是相对地址——相对于同一座城市。如果是将自己的地址告诉其他国家的某个人就必须说得更加详细如中国某个省某个市中的某条街某号以及邮政编码这就是绝对地址。相对路径常用于脚本且使输入更简便但是绝对路径是一个更为安全的选择因为它避免了可能出现的歧义。如果一个路径是用“\”开始的Windows 就从根目录开始找起绝对路径否则就从当前目录开始找相对路径。例如在上图中若当前目录为 a12 要指示子目录 a122 下的文件 ms.txt 可以用路径 \a1\a12\a122\ms.txt绝对路径 或 a122\ms.txt相对路径。在“我的电脑”中“地址栏”显示的就是当前目录。如果你看不到地址栏请找到“查看”菜单 - “工具栏”勾选“地址栏”。如果你的地址栏没有显示完整路径绝对路径请单击“工具”菜单 - “文件夹选项”再在“查看”选项卡中选中“在地址栏中显示完整路径”。3. 基本命令本章将具体地介绍一些命令。你最好能实践一下本章的内容这需要使用 Windows 的“命令行解释器”该程序在 Windows XP 中是 C:\WINDOWS\system32\cmd.exe 。请打开“开始” - “程序” - “附件” - “命令行提示符”。然后新窗口中可能会显示以下内容Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.C:\Documents and Settings\%USERNAME%_Copy其中“%USERNAME%”代表您当前的用户名。这里“”提示符之前显示的就是当前目录。注意以下几点Windows 中有两种命令内部命令和外部命令。内部命令即内置在命令行解释器中的命令不需要额外的程序如 dir 、copy 等。外部命令是以可执行文件的形式扩展名通常为 exe 或 com存在于磁盘上这就意味着该程序必须存在否则 Windows 是找不到该命令的如 http://format.com 。每条命令输完后须回车方开始运行并得到运行结果。命令行解释器把提示符“”和回车键间的字符串视为一条命令。如果这字符串确实符合 Windows 命令语法就执行它执行完后又回到提示符状态否则命令行解释器给出错误信息。例如Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.C:\Documents and Settings\rootcd C:\Program Files此处回车以后不标出C:\Program Files_
C:\Program Filesgf
gf 不是内部或外部命令也不是可运行的程序
或批处理文件。C:\Program Filestype a.txt
系统找不到指定的文件。C:\Program Files_Copy要学习某个命令最好的方法是阅读该命令的联机帮助。可以输入“命令名 /?”或“help 命令名”来查看命令的联机帮助例如“format /?”。本章对命令的解说仅限于最基本的用法欲详细了解请看联机帮助。3.1 目录操作命令\1. cdChange Directory改变当前目录格式cd [/D] [盘符:][路径]C:\cd \a1\a12\a122 进入 a122 子目录即指定 a122 为当前目录
C:\a1\a12\a122cd \ 退回根目录
C:\_Copy\2. 多级目录之间的转换1) 由多级子目录转向另一多级子目录C:\a1\a12\a122cd \c1\c13
C:\c1\c13_Copy2) 由根目录进入深层子目录a. 直接进入C:\cd \a1\a12\a122
C:\a1\a12\a122_Copyb. 逐层进入C:\cd a1
C:\a1cd a12
C:\a1\a12cd a122
C:\a1\a12\a122_Copy3) 退出深层子目录a. 直接返回根目录C:\a1\a12\a122cd \
C:\_Copyb. 逐级退出子目录C:\a1\a12\a122cd ..
C:\a1\a12cd ..
C:\a1cd ..
C:\_Copy4) 进入同级子目录如从 C:\a1\a12 转至 C:\a1\a11 C:\a1\a12cd ..\a11
C:\a1\a11_Copy以上实例中用到了“..”这用来表示当前目录的上级目录父目录。类似地一个点“.”表示当前目录。cd 命令只是切换目录如要切换盘符则只需输入“盘符:”。比如切换到 D 盘则输入“D:”即可。\3. mdMake Directory建立子目录格式md [盘符:] 新建子目录路径C:\a1\a12md a123 在当前目录下建立子目录 a123
C:\a1\a12md \d1 在 C 盘根目录下建立子目录 d1Copy\4. rdRemove Directory删除子目录格式rd [/S] [/Q] [盘符:]被删除子目录路径C:\c1rd c13 删除当前目录下的 c13 子目录
C:\c1rd ..\b1 删除根目录下的 b1 子目录Copy说明只有空子目录不含文件的才能被删除除非用 /S 参数。根目录和当前目录不能被删除。3.2 文件操作命令\1. dir 列文件目录清单格式dir [盘符:][路径] [/P] [/W]说明参数“/P”为分屏显示参数“/W”为简要显示只显示文件名不显示文件大小日期等信息。该命令可以使用通配符“”和“?”? 代表任一字符 代表任一字符串若干个字符。C:\dir 显示当前目录下文件目录清单
C:\dir E:\bin /p 分页显示 E 盘上 bin 目录下文件目录清单
C:\WINDOWS\system32dir p*.vbs 显示以 p 开头以 .vbs 为后缀的所有文件目录清单结果如下驱动器 C 中的卷是 SYSTEM卷的序列号是 B4E5-F200C:\WINDOWS\system32 的目录2002-10-08 04:00 165,389 pagefileconfig.vbs
2002-10-08 04:00 35,332 prncnfg.vbs
2002-10-08 04:00 25,086 prndrvr.vbs
2002-10-08 04:00 21,250 prnjobs.vbs
2002-10-08 04:00 32,095 prnmngr.vbs
2002-10-08 04:00 28,992 prnport.vbs
2002-10-08 04:00 15,633 prnqctl.vbs
2002-10-08 04:00 3,621 pubprn.vbs8 个文件 327,398 字节0 个目录 1,826,009,088 可用字节Copy\2. copy 复制文件格式copy 源文件[源文件] [目标文件]C:\copy *.* E:\backup 复制当前目录下所有文件到 E:\backup
C:\copy pic\ws?.jpg F: 复制 pic 目录下以 ws 开头后任跟一个字符的 jpeg 图片到 F 盘
C:\copy a1a2 将 a2 的内容添加到 a1 尾使 a1 的内容更新Copy\3. del 删除文件格式del 一个或多个文件名C:\del *.tmp
C:\del 1.txt 2.txtCopy\4. ren 重命名文件格式ren 原文件名 新文件名小结本章限于篇幅只介绍了一些基本命令相信您已经有能力自己阅读帮助文档。正如前面所提到的Windows 命令的联机帮助是了解某个命令的最佳方法。输入“help”可得到一份常见命令列表。输入“命令名 /?”或“help 命令名”可以找到指定的联机帮助页。命令的一般格式如下命令名 [参数1] [参数2] ... [操作对象1] [操作对象2] ...使用参数可开启命令的某些特定功能。参数和操作对象的顺序通常都可任意安排不过某些情况下也有严格的顺序要求。例如 dir /w E:\bin 和 dir E:\bin /w 的效果是一样的。具体顺序应参考各命令的帮助文档。命令参数中的文件名一般形式如下[盘符:][路径]文件名[.扩展名]例如C:\PA\MUSI.rarC 盘 PA 子目录中的 rar 文件 MUSIindex.html当前盘上的 HTML 文件 index3.3 通配符使用命令行界面的一个比较有趣的方面在于能够使用特定的称为通配符或元字符metacharacter的字符来改变和增强命令的行为。正如上一节提到过的Windows 中有两种通配符问号?匹配文件名中的任何一个字符星号*匹配文件名中的零个或多个字符。可以在一个命令中综合使用这些通配符以定位多个文件或者在不记得文件的全名时找到该文件。例如假定当前目录中含有文件date help help1 help2 help3 myprog.f myprog.oCopy表3-1给出了匹配实例。| 参数通配符 | 所匹配的文件 | | ----------- | --------------------------------------------- | | help? | help1 help2 help3 | | help* | help help1 help2 help3 | | * | date help help1 help2 help3 myprog.f myprog.o | | *.f | myprog.f | | d* | date |另外通配符在 Windows 的“搜索”中也可以使用。3.4 命令输入技巧打错了命令怎样修改呢怎样才能更高效地输入命令这些都是本节将探讨的问题。在 DOS 操作系统中打错命令有两种情况打错命令若未回车可用退格键或左方向键←抹去错误后重打然后回车执行。打错了命令已经回车可用功能键修改。常用 DOS 功能键有| F1 | 从左至右一个个字符地重复上次键入的命令。 | | ------ | ------------------------------------------------ | | F2 | 连续重复至某字符位置前所有字符不含某字符。 | | F3 | 复制上次输入的命令或当前光标后面剩余的全部字符。 | | F4 | 与 F2 相反删除到指定字符。 | | Del | 删去一字符。 | | Ins | 插入若干字符。 | | Esc | 作废当前行。 | | CtrlC | 强行终止当前命令或程序的执行。 |实际上我们更多时候会在 Windows 下修改“命令行解释器”给我们提供了更方便的修改方法。首先在未回车时输左方向键←并不会像 DOS 中那样删除前一个字符只会移动光标故只需把光标移到有错误的地方修改即可。并且Windows 中可使用上方向键↑来遍历已经输过的命令。另外“命令行解释器”还提供了强大的复制/粘贴功能。姑举一例说明假如上一个命令是“dir transitional.txt”现在要输入“type transitional.txt”有两种方法先按上方向键↑或屏幕显示dir transitional.txt 。再按键将光标移动到行首按三次键再输入 type 即完成命令。在窗口中点右键选择“标记”再用鼠标拉框选中上一个命令中的“transitional.txt”按回车就将文本“transitional.txt”复制到了剪贴板。然后输入“type”空格再点右键选择“粘贴”即完成命令。要提高输入效率还得靠另一个功能键 它能自动补完文件名。例如假设当前目录中以字母 t 开头的只有 transitional.txt 和 trap.exe 但你嫌 transitional.txt 这个名字太长于是你输入“type”空格后输入“t”然后按 命令行解释器会自动补完后面的部分变成“type transitional.txt”如果再按就会在 transitional.txt 和 trap.exe 这两个文件名之间切换。4. 一些较高级的概念上一章介绍了 Windows 命令行的基础知识本章将讨论一些更高级的功能这些功能足以使 Windows 命令行成为一个非常灵活而且强大的工具。4.1 输入输出重定向和管道每个命令都需要一个输入源和一个输出目的地。默认输入是键盘默认输出是屏幕这称为标准输入和标准输出。但在很多情况中用户也许希望为单独某次操作修改输入和输出。例如写一个命令从一个文件提取数据进行加工后输出到另一文件。这称为重定向redirection。命令行解释器使用字符“”和“”来定义临时输入和输出源。假定用户希望使用 dir 命令列出某个目录的内容并将输出保存到文本文件中而并非打印到屏幕上那么他可以建立一个 dir.txt 然后执行C:\dir dir.txtC:\Copy这里以上命令不会产生输出但会修改 dir.txt 的内容。注意字符“”会 完全覆盖 dir.txt 中已有的数据而且 dir.txt 不存在时还会自动新建文件。如果希望保存先前数据则可以使用 操作符C:\dir dir.txt 将输出追加到 dir.txt 的末尾C:\Copy字符 用于修改输入所谓输入是指某些命令从键盘读取的输入。这种命令在 Windows 不太常见就举 sort 为例。sort 命令要求用户输入一系列单词每个单词占一行以 CtrlZ 结束输入然后将这些单词按字母表顺序排序并输出到屏幕上。E:\sort
g 这里开始键盘输入
n
o
m
e
^Z CtrlZ 后回车以下是输出
e
g
m
n
oCopy如果我们使用输入输出重定向呢我们先建立一个 names.txt 内容如下Kobato
Tomoyo
Eriol
Fay
Meilin
Rika
Ruby
Kaede
Freya
Misaki
Dorothy
Edward
LisaCopy然后执行sort names.txt names-alpha.txtCopy该命令将输入和输出重定向结合在一起使用将 names.txt 文件中的条目排序然后将排序后的输出写入一个名为 names-alpha.txt 的文件中。得到的 names-alpha.txt 如下Dorothy
Edward
Eriol
Fay
Freya
Kaede
Kobato
Lisa
Meilin
Misaki
Rika
Ruby
TomoyoCopy管道pipe是一个操作符它把输入和输出重定向结合在一起从而将一个命令的输出立即作为另一个命令的输入。管道用竖直线字符|表示该字符通常位于 Enter 键附近。最经典的使用管道的命令more 。可以说该命令大部分情况下都和管道一起使用。例如要查看 sort 命令的帮助信息输入 sort /? 但一屏显示不完使用 sort /? | more 来分屏显示。C:\sort /? | more
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)。
-- More --Copy此时屏幕左下角显示– More – 按任意键则显示下一屏直到全部显示完。另一个经典的使用管道的命令是 find 用来过滤输出。例如我要查看当前的环境变量但我只对 PATH 感兴趣则输入C:\set | find Path
PathC:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\binCopy4.2 特殊设备在 Windows 中可以使用如下设备名| 设备名 | 表示 | | ----------- | ------------------ | | AUX | 辅助设备 | | CON | 控制台键盘 | | PRN | 默认打印机LPT1 | | NUL | 空设备 | | LPT1 - LPT3 | 并行端口 | | COM1 - COM4 | 串行端口 |可将命令的参数指定为这些设备名就能实现很多奇妙功能。\1. 使用 conC:\copy con t.txt 读取键盘输入并复制到 t.txt
Hello,world! 此处用键盘输入以 CtrlZ 结束
^Z
已复制 1 个文件。C:\Copy\2. 使用 nul “粉碎”文件文件被删除之后指在回收站中被删除还可以用某些软件恢复。怎样才能将文件彻底删除呢这里提供一种简单易行的方法。C:\dir | find t.txt
2008-06-16 20:01 14 t.txt 目前为 14 字节C:\copy nul t.txt 将“空”复制到 t.txt 这样就将 t.txt 的大小改写为了 0 字节
改写 t.txt 吗? (Yes/No/All): y
已复制 1 个文件。C:\dir | find t.txt
2008-06-16 20:37 0 t.txt 文件大小已为 0 了C:\del t.txt 再删除即可C:\Copy使用“copy nul 文件名”的办法将文件大小改为 0 后再删除这样即使用软件恢复也只能恢复出来一个空文件而已无法得到原来的那个文件了。4.3 环境变量环境变量是一个“变量名变量值”的对应关系每一个变量都有一个值与之对应。set 命令用于设置或查看环境变量。我们可以通过两个百分号的形式“%变量名%”在命令中引用变量的值。C:\set 列出当前所有环境变量及其值
……省略输出若干……
windirC:\WINDOWSC:\cd %windir% 该命令在执行时“%windir%”会自动被替换成“C:\WINDOWS”C:\WINDOWSset strHello! 用“set 变量名变量值”来设置一个变量C:\WINDOWSecho %str% echo 命令可回显一个字符串
Hello!C:\WINDOWSCopy变量给命令或批处理文件带来了极大的灵活性多用于批处理文件中。4.4 环境变量 PATH有一个特殊的环境变量 PATH 包含一组用分号;分隔的目录名。命令行解释器根据它查找可执行程序exe。如果想让自己的程序可以在命令行下使用可以将程序所在的目录加入 PATH 中。例如若想直接使用 D:\GnuWin32\bin 下的 wget.exe C:\wget
wget 不是内部或外部命令也不是可运行的程序
或批处理文件。C:\D:\GnuWin32\bin\wget
...运行成功Copy如果每次使用的时候都要输入完整的路径 D:\GnuWin32\bin\wget 显得有些繁琐我们希望 wget 能像其他的 Windows 命令一样只输入名字就可以使用。这时可将它所在的目录即 D:\GnuWin32\bin 加到 PATH 中C:\echo %PATH%
C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0C:\set PATH%PATH%;D:\GnuWin32\binC:\echo %PATH%
C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;D:\GnuWin32\binC:\wget
...运行成功Copy对 PATH 的更改只在这一次会话中有效如果关闭命令行解释器再重新打开或者重启电脑 PATH 又会变成原来的系统默认值如何修改这个默认值呢Windows 7 中计算机 - 右键 - 属性 - 高级系统设置 - 环境变量下面的“系统变量”中的 PATH 。5. 批处理文件简介使用批处理文件亦称批处理程序或脚本可以简化日常或重复性任务。批处理文件是纯文本文件它包含一条或多条命令其文件扩展名为 .bat 或 .cmd 。在命令提示符下键入批处理文件的名称cmd.exe 就会按照该文件中各个命令出现的顺序来逐个运行它们。所以批处理文件的特点是一次建立多次运行适合进行重复性任务。在 DOS 中只能使用 .bat 的批处理文件。可以在批处理文件中包含任何命令。某些命令比如 for、goto 和 if 命令等它们允许你对批处理文件中的命令作条件流程控制。例如if 命令根据条件语句的结果来执行命令。还有些只能在批处理文件中执行的命令。有关批处理文件的详细信息请参考以下命令的帮助页。| 命令 | 功能 | | -------- | ---------------------------------------------------------- | | rem | 添加一段注释 | | echo | 显示信息或将命令回显打开或关上 | | if | 执行批处理程序中的条件性处理 | | for | 为一套文件中的每个文件运行一个指定的命令 | | goto | 跳转到批处理程序中某个标明的行执行 | | pause | 暂停批文件的处理并显示消息 | | call | 从一个批处理程序调用另一个批处理程序而不终止父批处理程序 | | pushd | 保存当前目录然后对其进行更改 | | popd | 还原 pushd 保存的当前目录的上一个值 | | shift | 更换批文件中可替换参数的位置 | | setlocal | 开始批文件中环境更改的本地化 | | endlocal | 结束批文件中环境更改的本地化 | | title | 设置 cmd.exe 会话的窗口标题 | | start | 启动另一个窗口来运行指定的程序或命令 |6. 几个应用实例6.1 批量改名下载了一组图片后得到如下文件加粗为用户输入的内容C:\d:输入 D: 以切换到 D 盘否则下一个 cd 命令无效D:\cd D:\picsD:\picsdir /b
001.jpg
002-003.jpg
004.JPG
005.JPG
006.jpg
007.JPG
008.jpg
009.jpg
010.JPG
011.JPG
012.jpg
013.JPG
014.JPG
015.JPG
016.jpg
017.jpg
018.JPG
019.jpg
020.JPGCopy我想将它们改名为 01.jpg ~ 20.jpg 用命令该怎样做呢这里只提供一种可能的办法实际上还有很多种方法大家可触类旁通。D:\picsfor %i in (01,04,05,06,07,08,09) do ren 0%i.jpg %i.jpgfor 命令中%i 变量遍历小括号中的内容D:\picsren 001.jpg 01.jpg
……命令回显会显示实际执行的命令省略输出若干
D:\picsren 009.jpg 09.jpgD:\picsfor /L %i in (10,1,20) do ren 0%i.jpg %i.jpgD:\picsren 010.jpg 10.jpg
省略输出若干
D:\picsren 020.jpg 20.jpgD:\picsren 002-003.jpg 02-03.jpg最后手动改名D:\picsCopy以上主要通过 for…in…do 结构及 /L 参数使得本来要 19 次的改名操作只用两个 for 命令及一个 ren 就搞定。for 命令详细用法请参考其帮助页。6.2 批量“粉碎”文件接着刚才的例子如果我想用 4.2 节所述的方法“粉碎”当前文件夹下的所有 jpeg 文件我该怎样做for %i in (*.jpg) do copy nul %i /yCopy这里使用 /y 来防止 copy 的覆盖前提示。6.3 清理 Windows 临时文件夹 %tmp%%tmp% 这个环境变量保存了 Windows 临时文件夹的位置通常这个文件夹在 Windows 7 中是 C:\Users\用户名\AppData\Local\Temp WinXP 中则是 C:\Documents and Settings\用户名\Local Settings\Temp 。某些程序典型如安装程序解压缩软件运行过程中产生的临时文件会存放于此总之是个堆放杂物的地方其中文件一般可全部删除。在“我的电脑”的“地址栏”若找不到地址栏“查看”-“工具栏”-“地址栏”中输入“%tmp%”然后回车看看你的临时文件夹有多少东西。下面讨论清理。可能每隔一段时间就需要清理临时文件夹因此我们采用批处理文件。以下为 CleanTmp.cmd 文件的内容。第一种方案全部删除echo off
rem 命令前加“”会不让该命令显示出来而“echo off”的作用是关闭整个
rem 脚本的命令回显。若不懂请注释掉第一行在最前面加“rem ”再试。
rem CleanTmp.cmd : 清理 Windows 临时文件夹
rem Author : henixhttps://blog.henix.info/
echo Cleaning...
rd /s /q %tmp%
md %tmp%
echo Done.
pauseCopy也许你希望留下一些文件比如 *.log 那也可以用第二种方案删除部分文件rem CleanTmp.cmd : 清理 Windows 临时文件夹
rem Author : henixhttps://blog.henix.info/
del %tmp%\*.tmp /q
del %tmp%\*.wmv /q
del %tmp%\*.xml /q
rem 也可以添加更多你的临时文件夹中经常出现的而你又不想要的文件
pauseCopy将以上内容保存为 CleanTmp.cmd 放在桌面或其他你方便的地方以后你只需双击这个 CleanTmp.cmd 就可清理临时文件夹。6.4 快速切换 IP/DNS 配置有时我们可能需要经常切换 IP 配置比如带着笔记本往返于家和公司之间在家使用动态获取 IP而在公司使用静态 IP 如果每次都要点出对话框来修改 IP 的话相当不方便。netsh 这个命令可以帮我们设置 IP 地址。在桌面上创建一个 dhcp.cmd 内容如下set name本地连接
netsh interface ip set address %name% dhcp
netsh interface ip set dns %name% dhcp
pauseCopy假如你要切换的静态 IP 是 192.168.3.19 创建另一个文件 319.cmd 内容如下set OUT%TMP%\319.txt
set name本地连接echo interface ip set address %name% static 192.168.3.19 255.255.255.0 192.168.3.1 0 %OUT%
echo interface ip set dns %name% static 192.168.3.1 %OUT%
echo interface ip add dns %name% 8.8.8.8 %OUT%netsh -f %OUT%pauseCopy每次需要切换的时候双击运行这个脚本即可。这里 pause 的作用是暂停这个脚本避免一闪而过。第二个脚本使用 netsh 的 -f 参数把一个文件当作脚本执行这样 netsh 只初始化一次速度较快。6.5 下载一系列图片for wget有时我们在网上看到一系列图片想把它们都下载下来怎么办首先要取得图片的地址只有当图片的地址有一定规律性时才能使用此法下载在图片上点右键-“属性”然后复制“地址”一栏的内容。假设要下载的图片地址很有规律恰为 http://www.example.com/ 下的 1.jpg - 10.jpg 。网上有很多命令行小程序可以增强命令行的功能。这里使用 GNU Wget 该程序可通过 HTTP 、HTTPS 、FTP 协议下载文件。Windows 版下载地址http://gnuwin32.sourceforge.net/packages/wget.htm 需要下载“Binaries”和“Dependencies”并把解压后可执行程序所在的目录添加到 PATH 中。E:\picsfor /L %i in (1,1,10) do start wget http://www.example.com/%i.jpgCopystart 命令会开启一个新的进程可以实现多进程并发下载。6.6 平坦复制flat copy如果想把一个目录中的所有文件包含子目录复制到另一处但不想复制子目录结构怎么办使用 for 命令并使用 dir 的运行结果for /F tokens* %i in (dir /s /b /a-d %SRC%) do copy %i %DEST%Copy或者直接用 for /R for /R %SRC% %i in (*) do copy %i %DEST%Copy7. 常见问题解答问echo 命令输出总要换行有办法输出一个字符串而不换行吗答可以利用 set 命令的一个特殊用法set/p输出的内容nul问据说用 md 可以创建一些特殊目录答md test..\将创建一个名为“test.”Windows XP或者“test..”Windows 7的目录在资源管理器中无法正常删除。删除rd test..\8. 参考文献Paul Love, Joe Merlino 等: 《Unix 入门经典》. 张楚雄、许文昭译. 清华大学出版社. 2006张钟澍、杨佛章编著: 《电脑打字与文书编辑修订本》. 成都科技大学出版社. 1993附录1常用 DOS 命令一览一内部命令1. CD全程 CHDIR 显示当前目录的名称或将其更改格式CD [路径名]
2. CLS清除屏幕
3. COPY将至少一个文件复制到另一个位置格式COPY [/V] [/A | /B] 文件1 [ 文件2 [ ...]] 目标文件
4. DATE显示或设置日期
5. DEL或用 ERASE 删除至少一个文件
6. DIR显示一个目录中的文件和子目录格式DIR [盘符][路径][文件名] [/B] [/P] [/W]
7. MD全称 MKDIR 创建目录格式MD [路径]
8. RD全称 RMDIR 删除目录格式RD [路径]说明只能删除空目录
9. REN全称 RENAME 重命名文件格式REN [盘符][路径]旧文件名 新文件名说明不能为目标文件指定新的驱动器或路径
10. TIME显示或设置系统时间
11. TYPE显示文本文件的内容格式TYPE [盘符][路径]文件名
12. VER显示 DOS 版本
13. VOL显示磁盘卷标和序列号格式VOL [盘符]Copy二外部命令1. ATTRIB显示或更改文件属性格式ATTRIB [R | -R] [A | -A] [S | -S] [H | -H] [[盘符][路径]文件名] [/S]说明 设置属性- 清除属性R 只读文件属性A 存档文件属性S 系统文件属性H 隐藏文件属性。/S 处理当前文件夹及其子文件夹中的匹配文件。仅用 ATTRIB 会列出当前目录下全部文件及其属性。
2. CHKDSK检查磁盘并显示状态报告格式CHKDSK [盘符[[路径]文件名]]] [/F] [/V]说明不指明文件则对整个盘进行操作/F 为修复磁盘上的错误/V 为显示磁盘上每个文件的完整路径和名称。
3. EDITEDIT 为一菜单式文本编辑软件
4. FORMAT格式化磁盘以供 DOS 使用格式FORMAT 盘符 [/V:卷标] [/Q] [/S]说明高级格式化会清除全部文件/V 指定卷标/Q 快速格式化/S 为格式化成 DOS 系统盘相当于 FORMAT 后再 SYS。
5. SYS传输系统文件格式SYS [盘符]说明制作可启动的 DOS 系统盘。
6. XCOPY复制文件和目录树格式XCOPY 源文件 [目标文件] [/P] [/S [/E]] [/V]说明/P 创建每个目标文件前提示/S 复制目录和子目录除了空的/E 复制目录和子目录包括空的/V 验证每个新文件。Copy附录2Windows 中的一些有用的命令下表列出了 Windows 中的一些有用的命令使用方法请参考其帮助页。| 命令 | 说明 | | -------- | ------------------------------------------------------------ | | assoc | 显示或修改文件扩展名关联。如果在没有参数的情况下使用则 assoc 将显示所有当前文件扩展名关联的列表。 | | attrib | 显示、设置或删除指派给文件或目录的只读、存档、系统以及隐藏属性。如果在不含参数的情况下使用则 attrib 命令会显示当前目录中所有文件的属性。 | | chkdsk | 查找文件系统和文件系统元数据中的错误并显示查找结果的状态报告。如果不带任何参数chkdsk 将仅显示当前驱动器中的磁盘状态。不会修复错误。要修复错误必须包括 /f 参数。 | | convert | 将文件分配表 (FAT) 和 FAT32 卷转换为 NTFS 文件系统而现有的文件和文件夹完好无损。被转换为 NTFS 文件系统的卷无法再转换回 FAT 或 FAT32。 | | defrag | 定位并整理本地卷上的零碎启动文件、数据文件和文件夹。 | | diskpart | 管理磁盘、分区或卷可新建、删除等。 | | expand | 展开一个或多个压缩文件.cab 格式。 | | fc | 比较两个文件并显示它们之间的差异。 | | for | 对一组文件中的每个文件运行指定的命令。 | | fsutil | Fsutil 是一个命令行实用程序可用于执行多种与文件分配表 (FAT) 和 NTFS 文件系统相关的任务例如管理重分析点、管理稀疏文件或拆卸卷。由于 fsutil 的功能非常强大因而只有具有 Windows XP 或 Windows Server 2003 的完整知识的高级用户才应使用它。此外必须作为管理员或 Administrator 组的成员登录才能使用 fsutil。 | | ftype | 显示或者修改在文件名扩展关联中使用的文件类型。使用不带参数的 ftype 显示已定义打开命令字符串的文件类型。 | | move | 将一个或多个文件从一个目录移动到指定的目录。 | | subst | 将路径与驱动器号关联。如果使用时不带参数subst 将显示有效的虚拟驱动器的名称。 | | tree | 以图形的方式显示路径或驱动器中磁盘的目录结构。 || 命令 | 说明 | | -------- | ------------------------------------------------------------ | | arp | 显示和修改“地址解析协议 (ARP)”缓存中的项目。ARP 缓存中包含一个或多个表它们用于存储 IP 地址及其经过解析的以太网或令牌环物理地址。计算机上安装的每一个以太网或令牌环网络适配器都有自己单独的表。如果在没有参数的情况下使用则 arp 命令将显示帮助信息。 | | ftp | 将文件传输到运行文件传输协议 (FTP) 服务器服务如 Internet 信息服务的计算机或从这样的计算机传输文件。通过处理 ASCII 文本文件可以交互的方式或以批处理模式使用 Ftp。 | | hostname | 显示计算机全名中的主机名称部分。 | | ipconfig | 显示所有当前的 TCP/IP 网络配置值、刷新动态主机配置协议 (DHCP) 和域名系统 (DNS) 设置。使用不带参数的 ipconfig 可以显示所有适配器的 IPv6 地址或 IPv4 地址、子网掩码和默认网关。 | | net | 许多服务使用的网络命令都以词 net 开头这些 net 命令有net [ accounts | computer | config | continue | file | group | help | helpmsg | localgroup | name | pause | print | send | session | share | start | statistics | stop | time | use | user | view ] | | netsh | Netsh 是命令行脚本实用工具它允许从本地或远程显示或修改当前正在运行的计算机的网络配置。Netsh 还提供了一个脚本功能对于指定计算机可以通过此功能以批处理模式运行一组命令。为了存档或配置其他服务器Netsh 也可以将配置脚本保存在文本文件中。 | | netstat | 显示活动的 TCP 连接、计算机侦听的端口、以太网统计信息、IP 路由表、IPv4 统计信息对于 IP、ICMP、TCP 和 UDP 协议以及 IPv6 统计信息对于 IPv6、ICMPv6、通过 IPv6 的 TCP 以及通过 IPv6 的 UDP 协议。使用时如果不带参数netstat 显示活动的 TCP 连接。 | | ping | 通过发送 Internet 控制消息协议 (ICMP) 回响请求消息来验证与另一台 TCP/IP 计算机的 IP 级连接。对应的回响应答消息的接收情况将和往返过程的时间一起显示出来。Ping 是用于检测网络连接性、可到达性和名称解析的疑难问题的主要 TCP/IP 命令。如果不带参数ping 将显示帮助。 | | telnet | 通过 TELNET 协议登陆远程计算机。 | | tftp | 向运行日常文件传输协议 (TFTP) 服务或守护程序的远程计算机尤其是运行 UNIX 的计算机传输或接收文件。如果使用时不带参数tftp 将显示帮助。 | | tracert | 通过递增“存在时间 (TTL)”字段的值将“Internet 控制消息协议 (ICMP) 回显请求”或 ICMPv6 消息发送给目标可确定到达目标的路径。路径将以列表形式显示其中包含源主机与目标主机之间路径中路由器的近侧路由器接口。近侧接口是距离路径中的发送主机最近的路由器的接口。如果使用时不带参数tracert 显示帮助。 || 命令 | 说明 | | -------- | ------------------------------------------------------------ | | at | 计划在指定时间和日期在计算机上运行命令和程序。at 命令只能在“计划”服务运行时使用。如果在没有参数的情况下使用则 at 命令将列出已计划的命令。 | | chcp | 显示活动控制台代码页数量或更改该控制台的活动控制台代码页。 | | exit | 退出当前批处理脚本或 Cmd.exe 程序即命令解释程序并返回到启动 Cmd.exe 的程序。 | | help | 提供关于系统命令的联机信息即非网络命令。使用不带参数的 help 列举并简要描述每个系统命令。 | | reg | 对注册表子项信息和注册表项值中的值执行添加、更改、导入、导出以及其他操作。 | | regsvr32 | 在注册表中作为命令组件注册 .dll 文件。 | | sc | 与“服务控制器”和已安装设备进行通讯。SC.exe 检索和设置有关服务的控制信息。可以使用 SC.exe 来测试和调试服务程序。可以设置存储在注册表中的服务属性以控制如何在启动时启动服务应用程序以及如何将其作为后台程序运行。SC.exe 的参数可以配置指定的服务检索当前服务的状态也可以停止和启动服务。可以创建批处理文件来调用不同的 SC.exe 命令以自动启动或关闭服务序列。SC.exe 提供的功能类似于“控制面板”中“管理工具”项中的“服务”。 | | shutdown | 使您能够一次关闭或重新启动一台本地或远程计算机。 | | set | 显示、设置或删除环境变量。如果没有任何参数set 命令将显示当前环境设置。 | | takeown | 使管理员成为文件的所有者可授予管理员恢复对以前被拒绝的文件的访问权限。 | | taskkill | 结束一个或多个任务或进程。可以根据进程 ID 或图像名来结束进程。 | | tasklist | 显示本地或远程机器上当前运行的进程列表。 || 命令 | 说明 | | -------- | ------------------------------------------------ | | bcdedit | Bcdedit.exe 命令行工具用于修改启动配置数据存储。 | | mklink | 创建符号链接、硬链接或目录联结。 | | robocopy | Windows 的可靠文件复制。 |