最近看了下cmd命令,发觉有些用起来挺方便的。于是决定把这些DOS命令整理出来,方便以后写.bat批处理文件。
1 先来看看.cmd,.bat是什么:
.bat是dos下的批处理文件;
.cmd是nt内核命令行环境的另一种批处理文件;
因此,二者是没有本质区别。从更广义的角度来看,unix的shell脚本以及其它操作系统甚至应用程序中由外壳进行解释执行的文本,都具有与批处理文件十分相似的作用,而且同样是由专用解释器以行为单位解释执行,这种文本形式更通用的称谓是脚本语言。
所以从某个程度分析,batch,unixshell,awk,basic,perl等脚本语言都是一样的,只不过应用的范围和解释的平台各有不同而已。甚至有些应用程序仍然沿用批处理这一称呼,而其内容和扩展名与dos的批处理却又完全不同。
接下来就是vfhky整理的DOS命令了。第一部分比较常用,第二部分用的不多。有了这些基本的DOS命令,那么写简单的.bat批处理文件也就不难了(实例见下篇文章用.bat批处理文件实现内外网多IP切换)。
2 第一部分:常用的DOS命令
@,屏幕不显示当前行的DOS命令
echo off,屏幕不显示bat文件中所有的命令行
dir d:*.* >filelist.txt,将d盘文件列表写入filelist.txt中
cls,清除显示器屏幕上的内容,使DOS提示符到屏幕左上角
color,设置控制台前景和背景颜色。具体可以在cmd下用“color /?”查询
title,设置控制台窗口的标题。默认为“cmd”
cd,英文change directory的缩写(切换目录)。例如cd d:sybase,进入sybase目录
md,英文make directory的缩写(创建目录。例如md c:123
rd,英文remove directory的缩写(删除目录)。例如rd c:123
del,英文delete的缩写(删除)。用于删除指定磁盘、目录中的一个或一组文件,例如del D:gvim.exe
ren,英文rename的缩写(重新命名)。用于对指定磁盘、目录中的一个文件或一组文件更改名称,[格式] ren [C:][path]filename1[.ext] filename2[.ext]
time,显示和设置DOS的系统时间。[格式] time [hh[:mm[:ss[.cc]]]
date,显示和设置DOS的系统日期。[格式] date [MM-DD-YY]
%,表示参数(在运行批处理文件时在文件名后加的字符串,例如%1、%2等);
%var%,变量var;
.,它与echo连用构成“echo.”,作用是换行;
call,用于从一个批处理程序调用另一个批处理程序,而不终止父批处理程序。例如:call d:b.bat;
:goto label,跳转到“:label”标签处;
rem,注释命令,相当于“::”命令;
pause,暂停命令。运行时,将显示下面的文字:
Press any key to continue. . .(或者:请按任意键继续. . .)
pause > nul的作用是同样的,区别是不显示“请按任意键继续. . .”
set,显示、设置或删除变量。有三种基本格式:set /a 表达式;SET [variable=[string]];set /p variable=[promptString](=号右边的promptString是提示语,不是变量的值)。
type,文本输出命令;
3 第二部分:相对用的少的DOS命令
start,调用外部程序。例如start "" "d:gvim.exe"
format,磁盘格式化命令。[格式] [C:][path]format drive:[/S]
discopy,磁盘复制,即复制出一个和原来磁盘内容一模一样的磁盘。[格式] diskcopy 源驱动器名 目的驱动器名
deltree, 删除目录树(将整个指定目录树全部消灭,而不管它是否是只读、隐藏与否。)。[格式] [C:][path]DELTREE [C1:][path1] [[C2:][path2] […]]
mem,英文memory的缩写,用来查看计算机内存大小以及内存的使用情况。[格式] 直接键入mem命令
chkdsk,英文check disk的缩写,用来检查你的磁盘的使用情况。[格式] chkdsk 磁盘名
find,搜索命令。用于在文件中搜索特定字符串。例如:
type a.txt | find "黄克业的博客" && echo "麻辣的视界" 。
该命令会在a.txt中搜索“黄克业的博客”,如果存在该内容,就会输出“麻辣的视界”。
>、>>
二者都是输出重定向命令,即把前面命令的流文字重定向写入到一个文件中。二者的唯一区别是,>命令在清除掉原有文件中的内容后才把新的内容写入原文件,而>>命令会另起一行把新的内容追加到原文件中。
<、>&、<& :三个管道命令(不常用)
<,输入重定向命令。即从文件中读入命令输入,而不是从键盘中读入。
>&,将一个句柄的输出写入到另一个句柄的输入中。
<&,刚好和>&相反,从一个句柄读取输入并将其写入到另一个句柄输出中。
&,组合连接命令。即它可以连接n个DOS命令,然后按顺序执行,并且会忽略执行失败的命令。
&& ,组合连接命令。它可以把它前后两个命令组合起来当一个命令来用。但是和&命令不同的是,&&会检测是否有执行出错的命令,一旦发现出错后将不继续执行剩下的命令。
|,作用是让前一命令的输出当做后一命令的输入。
|| ,用法和&&几乎一样,但作用恰恰相反:当遇到一个执行正确的命令时,就退出此命令组合,不再继续执行下面的命令。
at,列出在指定的时间和日期在计算机上运行的已计划命令或计划命令和程序,例如at 12:00 “d:abc.bat”。