前记
自己是搞编程的,首先我是一个菜鸟,接触计算机这么久了,感觉很多计算机方面的技术和知识朦朦胧胧、模模糊糊,貌似有些贻笑大方了;所以最近腾出了点时间来了解计算机的基础知识,准备整理整理这些知识,我想也为时不晚。
说来整理,其实并非一件易事,各人的视野都是有限的,当然“百事通”我是做不来的,还是实实在在的拿出来分享分享,贻笑贻笑大方,让大家拍拍板砖也未尝不可。
为什么要学习批处理?
首先,我是一个后生,自从接触计算机开始就一直使用的Windows操作系统,而且还是较为古老的XP系统(相对Win7、Win8而言),可能是用的得心应手的,到现在还没准备换。
为什么要从批处理开始讲起?首先内心是有一点的崇拜“***”,那NB的技术真让人羡慕,当然我不会立志去成为一名“***”,因为这个职业是会被和谐的。那到底是为什么呢?因为当Windows还在娘胎的时候,DOS(全称为Disk Operating System,被称为磁盘操作系统)是计算机操作系统的霸主,而批处理就是汇集DOS的寄住。
计算机本身是弱智的,只能识别0和1两个数字(0和1这两个数字被我们尊称为二进制数码),但是人类的智慧是无限的,通过对计算机大脑(CPU)的改造,可以让它支持整个宇宙的所有信息。回归正题,我们在计算机上查看的任何文件都是以0和1组成的二进制码存储在计算机中的,具体怎么存储的我也是后生,所以我也不懂。最早出现的磁盘操作系统(DOS)就是实现对计算机硬盘上的文件的操作和管理。说了这么多其实只想说明一点就是我很想知道DOS和批处理到底是怎么对计算机硬盘上的文件进行操作的?
DOS和MS-DOS
上面说了很多废话,下面直接入题。
DOS(Disk Operating System),磁盘操作系统,我想对计算机有点了解的人应该都不会陌生这个词,但是具体它是干什么的呢?DOS是计算机上的一种基于磁盘管理的操作系统,可以直接操作和管理磁盘上的文件,在计算机出厂是基本都会自带一个DOS磁盘操作系统。
DOS发展到现在已经存在很多版本,以MS-DOS、PC-DOS和FreeDOS最为常见。
MS-DOS(Microsoft-Disk Operating System),是微软的磁盘操作系统,是DOS的一个分支。MS-DOS的来历可以查阅一下资料,最早的DOS称为86-DOS,最后由微软创始人比尔?盖茨以5美元(来自《硅谷传奇》电影,有时间可以看一看,讲述了乔帮主和盖茨大叔的白手起家之路)收购版权并更名为MS-DOS。
初期的Windows操作系统实质是基于DOS系统的一种图形应用程序,直到Windows2000后,才脱离DOS本质开始了自己的视窗操作系统。虽然脱离了DOS,直到Win7,Windows操作系统中一直保留了MS-DOS系统应用,可能是它曾经是霸主的原因。现在MS-DOS的最新版本是6.x,微软已经宣布停止对MS-DOS系统的更新,当然我们了解一下还是非常有必要的。像我这种不求新的人还在用着XP系统,情何以堪啊!所以我下面讲到的都是基于Windows XP系统的,当然大部分Windows 7一样可用。
MS-DOS常见命令
1.系统环境变量
Windows中的磁盘操作系统称为MS-DOS,DOS在Windows中表现为一个黑底白字的窗口,我们亲切的称之为命令行。对Windows熟悉的人肯定都知道在“开始”菜单中有一个“运行”窗口,我们可以在其中输出程序的名称,然后就可以直接打开对应的程序了。所以我们可以在“运行”窗口中的“打开”文本框中输入“cmd”即可以打开期待已久的命令行窗口。“cmd”其实是“command”(命令)的单词缩写。
为什么我们在“运行”窗口输入“cmd”就会打开命令行窗口呢?因为Windows系统引入了一个称为“环境变量”的概念,分为“系统环境变量”和“用户环境变量”两种类型。具体的可以通过“我的电脑”—>右键—>“属性”—>“高级”—>“环境变量”来查看,同样可以在运行窗口中输入“sysdm.cpl”来打开“我的电脑”—>“属性”选项。可以看到在“系统环境变量”中有一个变量名为“Path”的变量,值中有一段为“%SystemRoot%\system32;”,实际这段内容非常重要,以为在 Windows XP系统安装完成后自动配置的,实际它表示的是“C:\WINDOWS\system32”这个目录。可以查看一下这个目录,其实目录中存在一个“cmd.exe”可执行文件;同理,“sysdm.cpl”同样存在该目录中。为什么“cmd”不需要“.exe”扩展名,而“sysdm.cpl”需要扩展名呢?因为“系统环境变量”中还存在一个名为“PATHEXT”的变量,值中有一段为“.EXE;”所以到我们输入“cmd”名称后会自动追加“.exe”最为后缀并“C:\WINDOWS\system32”中查找看是否存在“cmd.exe”文件,存在则打开。实际当我面在命令行或者“运行”窗口中输入任何一个名称后,Windows系统会自动的从“Path”指定的所有目录中进行查找,如果查找到则就打开,否则就会自动加上“PATHEXT”中的任意一个值(顺序依次循环追加扩展名并查找)再次进行查找,如果查找到就打开,否则提示错误。
环境变量的知识,我就提到这里,其实有很多内置的系统环境变量,这些变量的作用,你可以不用吝啬网络资源,自己去查找一番(“百度”不行去“谷歌”),相信比我讲的透彻。
2.命令的使用
当在“运行”窗口中输入“cmd”之后键入“回车键”,即可启动命令行窗口,可以看到它很是淳朴,单纯的黑底白字,如图:
虽然它很朴素,但是功能是不可小觑的。我们可以看到一个一个一闪一闪的白色下划线,其实它就是我们称之为的“光标”。
下面我们在命令行窗口中输入“help”,然后键入回车,可以看出得到了一个命令说明列表,列出了所有的MS-DOS命令行以及命令行工具命令,列表如下:
命令名称 | 对应程序(WINDOWS\system32\) | 说明 |
assoc | 显示或修改文件扩展名关联 | |
at | at.exe | 显示或修改计划在计算机上运行的命令和程序 |
attrib | attrib.exe | 显示或更改文件属性 |
break | 设置或清除扩展式CTRL+C检查,XP中无效 | |
cacls | cacls.exe | 显示或修改文件的访问控制列表(ACLs) |
call | 从另一个批处理程序调用这一个,可实现跨文件调用 | |
cd 或 chdir | 显示当前目录的名称或将其更改 | |
chcp | chcp.com | 显示或设置活动代码页编号 |
chkdsk | chkdsk.exe | 检查磁盘并显示状态报告 |
chkntfs | chkntfs.exe | 显示或修改启动时的磁盘检查操作 |
cls | 清除屏幕内容 | |
cmd | cmd.exe | 打开另一个Windows命令解释程序窗口 |
color | 设置默认控制台前景和背景颜色 | |
command | command.com | 打开另一个Windows命令解释程序窗口,实质是prompt的一种形式,所有路径都为短路径方式 |
comp | comp.exe | 比较两个或两套文件的内容 |
compact | compact.exe | 显示或更改NTFS分区上文件的压缩 |
convert | convert.exe | 将FAT格式的卷转换成NTFS格式。并且不能转换当前使用的驱动器 |
copy | 将至少一个文件复制到另一个位置 | |
date | 显示或设置日期 | |
del 或 erase | 删除至少一个文件 | |
dir | 显示一个目录中的文件和子目录 | |
diskcomp | diskcomp.exe | 比较两个软盘的内容 |
diskcopy | diskcopy.exe | 将一个软盘的内容复制到另一个软盘 |
doskey | doskey.exe | 编辑命令行、调用Windows命令并创建宏 |
echo | 显示消息,控制回显的状态(打开或关闭) | |
endlocal | 结束批文件中环境更改的本地化,即停用延迟环境变量扩展功能 | |
exit | 退出cmd.exe程序(命令翻译程序)或当前批处理脚本 | |
fc | fc.exe | 比较两个或两套文件,并显示不同处 |
find | find.exe | 在文件内容中搜索文字字符串 |
findstr | findstr.exe | 在文件内容中搜索字符串 |
for | 为一系列文件(一个集合)中的每个文件运行一个指定的命令 | |
format | format.com | 格式化磁盘 |
ftype | 显示或修改用于文件扩展名关联的文件类型 | |
goto | 将Windows命令解释程序指向批处理程序中某个标明的行 | |
graftabl | graftabl.com | 启用Windows来以图像模式显示扩展字符集 |
help | help.exe | 启用Windows来以图像模式显示扩展字符集 |
if | 提供Windows命令的帮助信息 | |
lable | lable.exe | 创建、更改或删除磁盘的卷标 |
md 或 mkdir | 创建目录(文件夹) | |
mode | mode.com | 配置系统设备 |
more | more.com | 将结果进行分屏显示,一次显示一个屏幕内容 |
move | 将文件从一个目录移到另一个目录 | |
path | 显示或设置可执行文件的搜索路径 | |
pause | 暂停批文件的处理并显示消息 | |
popd | 还原pushd保存的当前目录的上一个值 | |
print.exe | 打印文本文件 | |
prompt | 更改Windows命令提示符 | |
pushd | 保存当前目录,然后对其进行更改 | |
rd 或 rmdir | 删除目录 | |
recover | 从有问题的磁盘恢复可读信息 | |
rem | 记录批文件或CONFIG.SYS中的注释,注释标识符 | |
ren 或 rename | 重命名文件 | |
replace | replace.exe | 替换文件 |
set | 显示、设置或删除批处理可执行程序环境变量 | |
setlocal | 开始批文件中环境更改的本地化,即启用延迟环境变量扩展功能 | |
shift | 更换批文件中可替换参数的位置 | |
sort | sort.exe | 对输入进行分类 |
start | 启动另一个窗口来运行指定的程序或命令 | |
subst | subst.exe | 将路径跟一个驱动器号关联 |
time | 显示或设置系统时间 | |
title | 设置cmd.exe会话的窗口标题 | |
tree | tree.com | 以图形模式显示驱动器或路径的目录结构 |
type | 显示文本文件的内容 | |
ver | 显示Windows版本 | |
verify | 告诉Windows是否验证文件是否已正确写入磁盘 | |
vol | 显示磁盘卷标和序列号 | |
xcopy | xcopy.exe | 复制文件和目录树 |
从列表中可以看成,有些命令是有对应的应用程序的,而且这些应用程序都是存在于“WINDOWS\system32”目录中,所以这些命令我们称之为“外部命令”;而对应那些没有对应应用程序的命令都是MS-DOS内部保留的命令,称为“内容命令”。
了解编程的人都知道,单纯的一个命令符只能做一件唯一的事情,所有MS-DOS对每一个命令都进行了扩展,这种扩展称为“命令选项”,大部分的命令选项都是可选的,使用“命令+选项”的方式可以实现多种复杂的不同的操作(值得注意的是命令选项和命令之间通常使用空格分割)。这里介绍一个绝大多少命令都保留的一个默认命令选项“/?”,这个选项用于查看命令的使用说明文档信息。例如:我们在命令行中输入“cmd /?”就可以看到“CMD”命令的使用说明信息以及其所有选项描述信息。
3.命令的特点
从上面的几个简单的例子,其实可以看成MS-DOS命令的几个特点,下面来总结一下:
MS-DOS是磁盘操作系统,目的用于管理和操作磁盘上的文件。因此它是基于目录的文件管理程序,也就是在操作之前必须要指定操作的目录。
命令行中命令、命令选项以及命令参数是不区分大小写的。这是Windows系统的共性,Windows中的目录和文件名都是不区分大小写的。也就是说MS-DOS中的大多数情况下是不区分大小写的,在某些特定情况下是需要区分的,这个以后你自会慢慢体会的。
命令行的结束符号是换行符(包括Enter键等),有的时候空白符(包括Tab键、Space键等)也可以作为结束符。也即是说一个换行符表示一条命令语句。
命令和选项以及参数之间的分隔符是空白符(包括Tab键、Space键等),某些特定情况下空白符可以省略。
MS-DOS是单任务系统,只有执行完一项操作后才能执行下一项操作。当我们执行完某一项操作后会回到系统起始状态。
命令行的执行快捷键是“Enter键”,强制终止的快捷键是“CTRL+C”键。
4.MS-DOS常用命令介绍
上面已经提到可以使用“命令 /?”的方式来查看任意一种命令的使用说明信息以及所有选项描述信息,通过这种方式我们可以学习以上列表中的任意一种命令的使用方式。只要肯尝试就没有不懂的。下面只介绍几种常用的命令使用方式。
4.1.盘符切换
盘符,官方应该称为卷标,就是我们说的“C盘”、“D盘”中的字母“C”和“D”,一般情况下盘符都是以26个英文字母大写方式加上冒号的方式呈现的,例如C:表示C盘,D:表示D盘,用于标记某一个磁盘分区。通常情况下我们的Windows系统都是安装在C盘的,因此启动命令行默认的操作目录是“C:\Documents and Settings\当前用户”。那么问题就来了,我们如何切换到其他的磁盘分区下进行操作呢?MS-DOS中提供了一种非常简单的操作方式,就是直接输入盘符,即:
卷标名称:
可以直接输入“盘符:”即可切换到该盘的根目录中,当卷标无法找到则会提示错误并返回到上一次操作的目录位置。
注意:这种方式不能从当前盘符中的目录切换到当前盘的根目录,只能切换到其他盘的根目录。
4.2.目录(文件夹)管理
CD/CHDIR——目录切换和显示
“CD”或“CHDIR”是短语“change directory”的缩写,意思是改变目录。主要用于改变当前目录或显示当前目录完全路径名。用法如下:
CD|CHDIR [/D] [目标目录]
“[]”表示可选,相信只要学过编程应该都知道。实质该命令有两种用法,一种是显示当前工作所基于的目录完全路径名;还一种就是改变工作目录到另一个地方。
讲到路径,这里可以大胆的扩展一下,所谓“路径”通过计算机中资源的一种定位标识途径,主要目的就是用于资源的唯一性定位。在通常情况下“路径”分为“绝对路径”和“相对路径”两种形式:
绝对路径——从命名上可知它的位置是固定的,它是通过一种磁盘文件标识符来进行定位的,描述的是“某个磁盘下的某个位置”的意思,通常包含盘符。
相对路径——从命名上可知它的位置是相对的,必须存在参照物,然后才能表示相对这个参照物而言资源的位置,描述的是“相对当前位置的某个位置”的意思,通常不包含盘符,但是包含“..”、“.”、“\”等操作符,“..”表示上一级目录,“.”表示当前目录,“\”表示当前盘符的根目录。
Windows系统中使用“\”作为目录级别分割符号(当然也可以使用“/”,但是Windows不推荐使用“/”);使用“..”可以表示上一级目录,使用“.”可以表示当前目录,使用“\”表示当前盘符的根目录。在MS-DOS中大多数使用的都是绝对路径,但是使用相对路径更加灵活多变。接下来我们再来讲“CD”命令的用法。
上面我们遇到了一个问题,就是如何从当前盘符的某一个目录切换到当前盘符的根目录,直接使用盘符切换显然是不行的。所以这里我们可以使用“CD \”的方式切换到当前盘符的根目录;同时我们可以使用“CD ..”切换目录到当前目录的上一级目录。其实就是目标路径是多变的,目标路径可以是相对路径,同样可以是绝对路径;默认情况下当目标路径为绝对路径的时候不能跨磁盘分区进行切换,所以“CD”命令提供了“/D”选项用来解决这个问题,例如我们在默认的MS-DOS路径下输入“CD /D D:\test”可以直接进入D:\test目录,当缺少“/D”选项时就不可以了,所以“CD /D”方式也可以替代盘符切换方式进行盘符的切换。
MD/MKDIR——目录创建
“MD”或“MKDIR”是短语“make directory”的缩写,意思是构建目录,主要用于创建新的指定目标目录路径名称的目录。用法如下:
MD|MKDIR 目标目录路径
该命令用于创建目录,其必须指定要创建目录的完全路径名。该命令可以跨磁盘分区进行目录创建,同时还可以创建一个目录树结构,即同时创建多个不存在的嵌套目录结构或目录组。
目标目录路径可以使用绝对路径,也可以使用相对路径,需要注意的时,目录不能与存在的目录名相同,否则会提示错误。注意:当创建的目录名称中存在空白符时需要使用英文状态下的引号("")将目录名称引起来;否则将创建目录组,每一个目录名以空白符分割开。
RD/RMDIR——删除目录
“RD”或“RMDIR”是短语“remove directory”的缩写,意思是移除目录。主要用于删除指定的目录结构。用法如下:
RD|RMDIR [/Q] [/S] 目标目录路径
该命令主要用于空的目录,可以跨磁盘分区进行操作,同时还可以使用增强选项删除非空的目录结构。只需要指定目标目录路径即可,该路径可以是绝对路径也可以是相对路径。
默认情况下,“RD”命令只能删除空的目录,也就是目录中不能存在其他目录或文件,否则会提示错误,正出于这个原因,所以“RD”命令提供了“/S”选项,用于强制删除非空目录,当使用“/S”进行非空目录的强制删除时会提是确认删除信息,当然可以使用“/Q”选项强制取消提示信息。
使用“RD”进行目录的删除一般不推荐使用,因为就我目前所知,使用DOS删除的文件或目录不会保留在“回收站”中,所以不要轻易的删除重要文件,否则删除后就不会那么轻易的找回来了。
DIR——目录内容展示
“DIR”是短语“directory”的缩写,表示目录。主要用于目录内容查看和展示。用法如下:
DIR [目标目录路径] [选项]
该命令主要用于目录结构信息的查看,可以查看目录中的子目录和文件属性信息。不指定“目标目录路径”的“DIR”命令用于展示当前目录结构,当指定“目标目录”时则展示目标目录的目录结构,格式为日期、时间、类型、大小、名称。该目录支持跨磁盘分区操作。
“DIR”提供的磁盘选项比较丰富,可以通过“dir /?”或“help dir”来查看所有的选项以及其说明信息。这里提一下,“/L”选项可以将子目录或文件名称转换为小写格式;“/S”选项可以展示每一个子目录的目录结构;“/X”可以将展示的结果强制转换为短名称的模式。
TREE——目录树展示
“TREE”命令和“DIR”命令用法差不多,同样用于展示指定目录的内容结构,它的特点是使用一个“树形”结构展示目录所有子目录和文件以及子目录中的所有子目录和文件;而“DIR”则是以列表的方式展示目录结构。用法如下:
TREE [目标目录路径] [/F] [/A]
该命令主要是以“树形”结构的方式展示目录结构。不指定“目标目录路径”的“TREE”命令用于展示当前目录结构,当指定“目录目录”时则展示目标目录的目录结构。该命令不支持跨磁盘分区操作。
该命令包括两个选项,其中“/F”选项用于展示出所有的文件信息,默认只是展示目录结构,不包括文件列表;“/A”用于标识强制使用ASCII字符进行结构图案的构建。
4.3.文件管理
TYPE——文件内容查看
“TYPE”命令并不是表示文件类型,而是用于查看文件内容的命令。这里需要注意的是“TYPE”命令可以查看所有文件的内容并将其打印在命令行窗口,但是大多数的文件都是经过编译以及其他方式处理过的,所以这些文件的内容则算一系列乱码,因此是无意义的查看,所以我们通常使用“TYPE”命令查看文本文件的内容,使用方式如下:
TYPE 目标文件路径 [|MORE]
该命令主要用于文本内容的信息查看,所以“目标文件路径”必须指定,路径既可以是相对路径,也可以是绝对路径,同时该命令支持跨磁盘分区操作。
使用“TYPE”命令只能查看一个特定的文件内容,如果文件内容过多,则可以使用“|more”选项来实现分页显示的效果。其实“MORE”是一个命令,“|”是一个特殊的符号。
COPY——文件复制/文件合并
“COPY”命令主要用于文件的复制,可以将一个或多个文件复制到另一个位置,使用方式如下:
COPY [选项] 源文件路径 [/A或/B] [+...] [目标文件路径 [/A或/B]]
该命令主要用于实现文件副本的创建,支持跨磁盘分区操作。
这里我们来看看“/A”和“/B”的区别,它们是紧跟在文件后的选项,其中“/A”用于表明文件为ASCII文本文件;而“/B”用于表明文件为二进制文本文件;但大多数我们不实用则两个选项进行表明。
“COPY”命令的选项比较丰富,可以通过“copy/?”或“help copy”来查看所有的选项以及其说明信息。默认情况下,可以直接指定“目标路径”为一个目录,而且这个目录必须存在,否则会提示错误(可以使用“/D”强制创建目标目录),则命令会将源文件复制到目标目录中,这个过程叫做“同名拷贝”;当然也可以指定“目标路径”为一个文件,这种方式是将源文件内容读取并写入到目标文件中,这个过程叫做“异名拷贝”。
下面来看看如何实现文件的合并,实质这个过程叫做“合并拷贝”。当目标路径为一个目录时,可以使用“+”来连接多个源文件,则命令会将多个文件的内容进行合并后写入到目标文件中(目标文件名为最后一个读取的文件名),例如“copy C:\test\1.txt+2.txt D:\test”这个命令则会将1.txt和2.txt的内容进行合并后在D:\test目录中构建一个名为2.txt的文件;当目标路径为一个文件时,则会将多个文件的内容合并后并写入到目标文件中。
XCOPY——文件或目录树复制
“XCOPY”命令主要用于目录树的复制操作,同时支持对文件的复制操作,可以将一个或多个文件或目录复制到另一个指定的位置。用法如下:
XCOPY 源路径 [目标路径] [选项]
该命令主要用于目录树结构的复制操作,其次可以扩展为文件的复制操作,其中“源路径”必须要指定,如果没有指定“目标路径”则默认目标路径为当前工作目录。支持跨磁盘操作。
“XCOPY”命令的选项比较丰富,可以通过“xcopy/?”或“help xcopy”来查看所有的选项以及其说明信息。默认情况下,如果不实用任何选项,则在完成复制之前会提示选择“目标路径的类型,F表示文件,D表示目录”;如果选择目录,则会将源路径目录和目录下的非系统、非隐藏文件复制到指定的目录路径下;如果选择的是文件,则会将目录下的每一个文件内容依次复制到目标路径中,后者会覆盖前者,而且在复制每一个文件时都会提示是否重写目标路径文件。当然可以使用“/I”选项将目标路径强制作为目录进行处理从而取消目标路径类型的确定提示。
默认情况下“XCOPY”命令只能复制一层目录和其文件,同时提供“/S”选项则可以将非空的目录和其下的非系统、非隐藏文件(包括子目录层)复制到指定的目标路径中;使用“/E”选项可以将所有的目录和非系统、非隐藏文件复制到目标路径中;使用“/T”选项则可以值对非空的目录和子目录结构进行复制(不包含文件的复制);使用“/H”选项则可以强制将系统文件和隐藏文件复制到目标路径中;当然它们也可以进行组合使用,达到不同的效果。
“/F”选项可以输出完整的元老级和目标路径中的复制映射关系;使用“/L”选项可以输出源路径中需要复制的文件列表等。
DEL/ERASE——删除文件
“DEL”是短语“delete”的缩写,意思是删除;还一种删除文件的命令是“ERASE”,意思是擦除,二者使用方式一样。在这里主要指删除文件,该命令可以删除一个或多个文件,是直接从磁盘上擦除文件的数据,所以删除的文件并不会出现在“回收站”中,因此要谨慎使用。用法如下:
MOVE [/Y或/-Y] 源路径 目标路径
该命令用于从磁盘上擦除一个或多个文件数据,其中“目标路径”必须指定,可以是绝对路径,也可以是相对路径。支持跨磁盘操作。
“DEL”命令的选项比较丰富,可以通过“del/?”或“help del”来查看所有的选项以及选项说明信息。其中“/P”选项可以开启删除文件前的确认提示信息,默认是不开启的;“/F”选项可以强制删除只读文件,也就是说默认情况下,不支持只读文件的删除;“/S”选项可以将“目标路径”指定为一个目录,那么将依次删除该目录中的文件并同时删除该目录的子目录以及子目录的子目录中的文件。
MOVE——移动文件或目录/重命名文件或目录
“MOVE”意思是移动,该命令主要用于移动目录,相当于Windows中的“剪切”操作,可以将一个或多个文件移动到指定的路径中;同时可以衍生对目录或文件的重命名操作,即将一个目录或文件移动的不同名的目标路径中。用法如下:
DEL|ERASE [选项] 目标路径
该命令有两个用法,其一就是移动文件,其二就是重命名目录或文件。其中源路径和目标路径必须指定,该命令有两个选项,“/Y”选项用于取消移动时的确认提示信息,“/-Y”选项用于显示确认提示信息。
当移动文件操作时,即源路径是一个文件,目标路径可以为一个目录路径,那么会将源路径中的文件移动到目标路径的目录中(文件名保留);如果目标路径为一个文件路径,那么会将源路径中的文件内容读取并写入到目标文件中,这样可以实现文件的重命名操作;当源文件存在多个时(使用英文状态的“,”分割),则命令会将多个文件移动到同一个目标路径中,或者将多个文件的内容读取并拼接后写入到一个目标文件中。
当源路径是一个目录时,可以将源目录移动到指定的目标路径中,如果目标路径与源路径在同一个相对路径中,则可以进行目录的重命名操作。注意:“MOVE”命令可以实现文件或目录的移动(或重命名),但是只能支持文件的跨磁盘分区移动,不支持目录的跨磁盘分区移动。
REN/RENAME——重命名文件或目录
“REN”或“RENAME”意思是重命名,可以对一个指定的文件或目录进行名称的修改。用法如下:
REN|RENAME 源路径 新名称
该命令用于修改文件或目录的名称,其中源路径和新名称必须同时指定,需要注意的是“新名称”不能包含新的路径,它的路径沿用“源路径”中的路径地址;该命令支持跨磁盘分区操作。
FC——文件比较
“FC”是短语“file compare”的缩写,意思是文件比较。该命令用于进行两个文件的内容信息比较,毕竟是命令行,所以“FC”进行的文本文件内容的比较是比较弱智的,不推荐使用,当然如果在没有其他文件比较工具的时候可以勉强使用一下。用法如下:
FC [选项] 文件路径1 文件路径2
该命令用于文件内容的比较,然后显示出内容的不同之处,支持跨磁盘分区文件的比较。同时提供多个选项,可以使用“fc/?”或“help fc”来查看选项的使用说明。
FIND——文件内容搜索
“FIND”,意思是查找,该命令主要用于在指定文件的内容中搜索指定的字符串,并显示相应的结果。相当于对内容的查找操作。用法如下:
FIND [选项] "字符串" [文件路径]
该命令用于字符串的搜索操作,其中要搜索的字符串必须使用英文状态的“""”引起来,而且该字符串是必须参数;文件路径不是必须的,但是大多时都是从存在的文件中进行内容字符串的查找,如果文件路径不存在则将在接下来输入的内容中进行查找(按CTRL+C组合键可以终止查找)。该命令支持跨磁盘分区操作。
默认情况下,在内容中查找到指定的字符串后会打印输出存在该字符串的一整行内容。当然还提供了丰富的选项控制,可以使用“find/?”或“help find”来查看所有的选项说明,其中“/V”选项可以显示输出不包含查找字符串的行内容;“/C”选项可以输出包含查找字符串的行数;“/N”选项可以显示包含字符串的行号和行内容;“/L”选项可以指定搜索过程中严格区分字符串的大小写,默认是忽略大小写的。当然这些选项都可以组合使用,可以达到不同的效果。
FINDSTR——文件内容搜索
“FINDSTR”意思是查找字符串,该命令与“FIND”命令的作用大致相同,都是用于字符串的查找工作;当然“FINDSTR”命令比“FIND”命令功能更为复杂多变,同时它支持对一个目录中所有文件的搜索功能。用法如下:
FINDSTR [选项] 字符串 [文件路径]
该命令同“FIND”命令一样,用于在文件内容中进行字符串的搜索查找,然后打印输出对应的结果。其中要查找的字符串可以使用英文状态的“""”引起来,也可以不实用,但是字符串必须指定;文件路径同“FIND”命令一样可以不指定,当不指定时表示在接下来输入的内容中进行查找。该命令支持跨磁盘分区操作。
使用“FINDSTR”命令可以实现多个字符串的查找,多个字符串需要使用空格符号隔开,同时必须将字符串使用“""”引起来,否则则解释为命令选项。同时“FINDSTR”还支持表达式的扩展查找,支持字符串范围的查找等等,可以使用“findstr/?”或“help findstr”来查看具体的使用说明。
与“FIND”命令一样,默认情况下,在内容中查找到指定的字符串后会打印输出存在该字符串的一整行内容。当然还提供了丰富的选项控制,可以使用“findstr/?”或“help findstr”来查看所有的选项说明,其中“/I”选项可以指定搜索过程忽略大小写,默认是严格区分大小写的;“/X”选项可以筛选出完全匹配的行内容并显示输出。用法比较灵活,可以尝试选项组合使用,从而达到不同的效果。
4.4.MS-DOS系统管理
PATH——执行路径管理
“PATH”命令是比较关键的一个命令,但是在使用时用的并不是很多。该命令主要用于设置MS-DOS系统环境变量中的“PATH”常量值,也就是MS-DOS执行环境变量中的“PATH”变量。用法如下:
PATH [目标目录路径][;...][;%PATH%]
“PATH”在MS-DOS系统中指可执行路径,使用该路径指定后,以下在引用某一个(非路径的)资源的时候就可以优选从“PATH”变量指定的可执行目录中进行资源的搜索和查找,这一点比较灵活。
没有指定“目标目录”的“PATH”命令用于查看当前系统注册表中的“Path”环境变量;当指定“目标目录”时则将“PATH”当前MS-DOS环境中的“PATH”环境变量修改为指定的目录,当然可以包含多个目录,使用“;”分割;如果要在原有的“PATH”环境变量中追加目录可以使用“%PATH%”进行原有环境变量的引用(这种用法其实是一种变量的引用方式)。
DATE——日期管理
“DATE”意思是日期,该命令用于管理系统日期信息。输入没有参数的“DATE”命令可以显示当前日期,并提示修改新的日期。使用“/T”选项可以取消修改步骤,只输出当前日期;使用带日期值作为参数的“DATE”命令用于修改当前日期为指定的日期。
TIME——时间管理
“TIME”意思是时间,该命令与“DATE”一样,主要用于管理系统时间的信息。输入没有参数的“TIME”命令可以显示当前时间并提示修改新的时间。使用“/T”选项可以取消修改步骤,值输出当前时间;使用带时间值作为参数的“TIME”命令可以修改当前时间为指定的时间。
CLS——清屏
“CLS”命令用于清除当前屏幕内容。当屏幕内容较多是可以使用“CLS”命令清除当前屏幕中的所有内容,并将工作路径返回到执行命令前的工作路径。
EXIT——退出
“EXIT”意思是退出,该命令用于退出当前命令行程序,需要注意的是只能结束当前一个命令行程序,而不是所有。结束后将关闭命令行窗口。高级应用可以使用“exit/?”和“help eixt”来查看。
HELP——帮助查看
“HELP”意思是帮助,上面都提到过,主要用于输出命令行帮助信息,它有两种用法:其一就是打印所有的MS-DOS命令行命令说明信息列表,其二就是查看单个命令的使用说明文档。使用方式为:
HELP [命令]
该命令用于帮助说明文档的查看,大多数情况下MS-DOS命令提供“/?”选项来实现同样的效果。
4.5.磁盘管理
format——磁盘格式化
“format”是Windows提供的一个磁盘格式化工具,所谓的“格式化”就是擦除磁盘的所有数据。“WINDOWS\system32\format.com”工具是一个命令行工具,使用该工具必须要指定磁盘分区卷标(也成为驱动器名称),格式化是一个危险的操作,一般不要轻易使用。
“format”命令也提供了丰富的选项操作,可以使用“format/?”或“help format”查看,可以将一个磁盘分区格式化同时修改其文件系统格式、修改其卷标名称等。较为常用的一种方式就是快速格式化“format 盘符 /Q”,这种方式可以快速的实现格式化操作,同时保留原有文件系统格式。
convert——磁盘格式转换
“convert”是Windows提供的一个磁盘文件系统格式转换工具,所谓的“文件系统”就是指FAT、FAT32、NTFS等磁盘分区格式,这里不做多的解释,可以去查查相关资料。“WINDOWS\system32\convert.exe”工具是一个命令行工具,使用该工具必须要指定磁盘分区卷标(即要转换的盘符),同时必须指定“/FS:NTFS”选项,也就是说该工具只能将其他格式的磁盘转换为NTFS格式的磁盘。
“convert”命令也提供了丰富的选项操作,可以使用“convert/?”或“help convert”查看,这种转换是不会擦除磁盘原有数据的,只是重构它的文件系统而已。最常用的方式为“convert 盘符 /FS:NTFS”,即将指定的盘转换为NTFS格式,注意当前工作分区不能进行转换。
chkntfs——启动时磁盘检查设置(自检设置)
“chkntfs”是Windows提供的一个磁盘检查设置工具,所谓的“磁盘检查”就是我们称之为的“自检”,还在为由于非正常关机而导致系统在下一次启动是出现蓝屏自检而烦恼吗?哈哈...使用“chkntfs”工具可以帮你取消磁盘的自检过程。使用该命令必须要指定要操作的磁盘分区卷(即盘符),经过实际验证该工具只能对“NTFS”格式的磁盘进行有效的设置。
“chkntfs”命令也提供了丰富的选项操作,可以使用“chkntfs/?”或“help chkntfs”查看,可能这个命令对我们有用的就是用于取消磁盘的自检过程。取消的命令如下:
chkntfs /t:0 chkntfs /x D:
以上命令首先设置了开始自检的计数时间设置为0,然后强制取消对D盘的启动自检操作,从而达到取消D盘自检过程的目的。如果要取消其他分区的自检操作,值需要将“D:”修改为对应的卷标即可。
4.6.其他常用外部命令
ping——TCP/IP远程连接测试
“PING”命令,做过编程的应该都知道这个命令,至于TCP/IP实在是高深莫测,这里不做多的介绍,可以去查一下相关资料,初学者知道它是支持上网的东西就行了。“ping”命令主要是用于测试对远程主机的网络连接状况,通过这个状况我们可以知道与目标主机的网络是否通畅。用法如下:
PING [选项] 目标主机地址
该命令用于测试与目标主机的网络连接,所以目标主机的地址一定以指定,通常我们使用IP来表示网络中的一台计算机,所以目标主机地址可以是主机IP地址,还可以是目标主机的域名地址。
通常我们如果不能上网都会有高手告诉你,“看看是否能够ping通”,意思就是说通过TCP/IP提供的“ping”命令来检查网络是否通畅。当我们看到“Request timed out.”(意思就是“请求超时”)的结果时,表示无法与目标主机进行网络连接;当看到“Reply from xxx.xxx.xxx.xxx: bytes=xx time=xxms TTL=xx”的结果时表示已经接受到了回复信息,也就是说与目标主机的网络连接正常。
“PING”命令提供了丰富的命令选项,可以通过“ping /?”来查看其所有的选项和说明信息。
ipconfig——TCP/IP信息查看
“IPCONFIG”命令,是程序员应该都知道的命令,该命令主要用于查看本机的IP配置信息,通常我们使用这个命令来查看本机的IP地址。用法很简单:
IPCONFIG [选项]
该命令用于查看本机当前网络连接配置的IP地址、网关等信息。
通常情况下,我们可以通过网络连接的属性来查看本机IP地址,但是对应那些自动获取网络地址的机器你就束手无策了吧!呵呵...我们可以使用“ipconfig”命令来查看。“ipconfig”命令提供多种选项操作,可以使用“ipconfig/?”来查看这些选项的使用说明信息,默认情况下无选项的“ipconfig”命令可以查看当前打开的网络连接的IP地址、子网掩码以及网关信息;可以使用“/all”选项可以查看完整的本机网络信息,包括主机名、本机物理地址(MAC)、IP地址、子网掩码、网关、DNS服务器等信息。
net——网络环境、服务、用户等综合管理
“NET”是Windows综合型管理工具,可用于管理网络环境、服务、用户、登录等Windows中大部分重要的功能模块,同时支持远程计算机的管理。“net”命令是一个组合型命令,可以使用“net”或“net/?”来查看该命令的所有组合项。
对应我来说最常用的就是它对服务的管理,可以使用“net”命令与“start”命令组合来实现服务的启动操作,与“stop”命令的组合实现服务的停止操作。使用方式如下:
net start servername net stop servername
注意:服务名称可以通过服务选项模块中的查看。
netstat——网络连接信息查看
“NETSTAT”是TCP/IP模块提供的网络状态查看工具,可用于查看网络统计和当前网络连接信息。其实在做编程开发的过程中,“netstat”命令还是有必要了解的,尤其是Web开发中,我们可以使用“netstat”命令查看端口占用情况。用法很简单:
NETSTAT [选项]
通常情况下,没有选项的“netstat”命令,用于查看本机的TCP连接情况,结果是一个本机与连接主机的映射地址以及状态信息的列表。其实对我来说有用的基本就是用它来查看“端口号的占用情况”了。该命令提供了丰富的选项,可以通过“netstat/?”来查看,其中“/a”或“-a”选项用于查看当前主机所有的连接和端口监听情况,不仅包含TCP还包含UDP;“/b”或“-b”选项可以查看每个连接或监听端口对应的可执行组件完全路径名;“/n”或“-n”选项可以将显示中的信息强制扩展为数字模式,即IP和数字端口表述信息。
telnet——远程连接
“TELNET”实质是TCP/IP模块提供的一个网络客户端工具,可以使用该工具登录网络上的远程主机。话说这个命令行工具是比较强大的,可以实现数据包的发送的接受,哈哈...真是因为其强大,所以我还不怎么会使用,当然你可以好好研究研究。我曾经看到过一个例子,就是使用“telnet”命令来实现模拟HTTP访问远程主机,如果是一个站点则会打印出站点首页的HTML代码。使用“telnet”登录远程主机一般使用以下的方式:
telnet hostname port
其中“hostname”是指主机的唯一标识名称,可以是IP、域名等;“port”表示的是端口号,默认为“23”。
msg——消息发送
“MSG”实质是TCP/IP模块提供的网络消息发送客户端工具,可以在使用“msg”命令实现网络上的消息传输功能,当然不能实现过于复杂的消息传输。用法比较简单:
MSG 目标用户 [选项] 消息
在模拟过程中“目标用户”一般都是指本机用户名,当然还可以是远程主机的用户名。例如使用“msg * 123”可以给本机所有的用户发送消息“123”,本机用户可以在弹出会话框中阅读消息。
tasklist——系统进程查看
“TASKLIST”是Windows提供的一个关于进程的监听工具,该工具可以显示本地或远程主机系统上运行的任务或进程信息列表。其实和Windows系统中的任务管理器中的进程选项列表一致,只不过“tasklist”命令默认不会刷新而已。默认情况下,无选项参数的“tasklist”命令用于显示系统当前时刻所有进程的名称、ID、内存使用等信息;当然还提供多种选项操作,可以使用“tasklist/?”来查看。
taskkill——系统进程终止
“TASKKILL”是Windwos提供的一个进程管理工具,该工具与“tasklist”工具非常相识,但是功能不一样。“taskkill”命令可以结束本机或远程主机上至少一个指定ID或名称的进程。具体使用方式可以使用“taskkill/?”来查看。
需要提出的是,Windwos系统还提供了一个进程管理工具叫“TSKILL”,与“taskill”的用法差不过,使用时需要指定一个进程ID或者进程名称,由于“tasklist”可以查看进程ID和名称,所以一般需要与“tasklist”命令相结合使用。
4.7.常用程序的运行命令
edit——文本编辑器(最基本的DOS级别的文本编辑器)
nslookup——域名和DNS侦测工具(可以检查指定域名对应的IP地址)
shutdown——计算机关机、注销、重启命令行工具
regsvr32——系统DLL组件管理工具
calc——计算器程序
clipbrd——系统剪切板管理工具
dxdiag——DirectX信息检查工具
gpedit.msc——组策略管理面板
notepad——记事本程序
regedit——注册表编辑器
services.msc——服务管理器
control——控制面板
taskmgr——任务管理器
sysdm.cpl——系统属性(我的电脑—属性面板)
write——写字板程序
winmsd——系统信息查看面板(Windows提供的系统、硬件、软件环境)
winword——新建Office Word(必须安装Office办公软件)
excel——新建Office Excel(必须安装Office办公软件)
powerpnt——新建Office PowerPoint(必须安装Office办公软件)
后记
其实DOS下的命令不止以上所介绍的,个人阅历有限,只列出了自己所知道的比较常用的DOS命令,对于其他的命令希望大家踊跃补充。
梳理知识,分享大家,互利你我!怕拍板砖,就不知道自己整理的对知识掌握的问题所在,找到问题才有所进步,欢迎大家踊跃的拍砖...