DOS和批处理基本命令

时间:2022-09-02 23:13:44

1.rem和::

rem注释命令,该命令后的内容不被执行,但能回显

::注释命令,该命令后的内容不被执行,也不能被回显

2.echo

1)echo off 执行时,批处理所有的命令行都不显示,只显示执行后的结果

2)显示echo当前状态 打开或关闭

3)echo 信息内容    在后面显示该信息

4)输出空行 echo.   注意echo后不能跟空格

5)建立新文件或增加文件内容

格式:echo 文件内容>文件名

        echo 文件内容>>文件名

3.pause 暂停

要显示其他提示语,可以这样用:

echo 其他提示语 & pause > nul

4.errorlevel 程序返回码

  echo %errorlevel%

  每个命令运行结束,可以用这个命令行格式查看返回码

  用于判断刚才的命令是否执行成功

  默认值为0,一般命令执行出错会设 errorlevel 为1

5.if

1)if [not] errorlevel number command

    IF ERRORLEVEL这个句子必须放在某一个命令的后面,执行命令后由IF ERRORLEVEL 来判断命令的返回值

2) IF [NOT] string1==string2 command

   string1和string2都为字符的数据,英文内字符的大小写将看作不同,这个条件中的等于号必须是两个(绝对相等的意思)

   条件相等后即执行后面的command

3) IF [NOT] EXIST filename command

   EXIST filename为文件或目录存在的意思

6.goto和:

goto  跳转命令

: 一个标签

goto到:命令行的位置

7.type

type 路径\文件名  内容显示在屏幕上或打印机输出

ex:c:\windows\system32\table.log

     c:\windows\system32\table.log >prn

8.pushd和popd  切换目录

pushd 路径    切换为当前目录

popd   恢复到之前的目录

9.call  在批处理执行过程中调用另一个批处理

call command  参数

在批处理编程中,可以根据一定条件生成命令字符串,用call可以执行该字符串,

调用的其它批处理程序。filename 参数必须具有 .bat 或 .cmd 扩展名

CALL :label arguments

调用本文件内命令段,相当于子程序。被调用的命令段以标签:label开头

以命令goto :eof结尾

10.shift  更改批处理中可替换参数的位置

shift /n       n在零和八之间

ex:SHIFT /2

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

11.setlocal和变量延迟

为了更好的说明问题,我们先引入一个例子。

例1:

@echo off

set a=4

set a=5 & echo %a%

pause

结果:4

解说:为什么是4而不是5呢?在echo之前明明已经把变量a的值改成5了?

让我们先了解一下批处理运行命令的机制:

批处理读取命令时是按行读取的(另外例如for命令等,其后用一对圆括号闭合的所有语句也当作一行),在处理之前要完成必要的预处理工作,这其中就包括对该行命令中的变量赋值。我们现在分析一下例1,批处理在运行到这句“set a=5 & echo %a%”之前,先把这一句整句读取并做了预处理——对变量a赋了值,那么%a%当然就是4了!(没有为什么,批处理就是这样做的。)

而为了能够感知环境变量的动态变化,批处理设计了变量延迟。简单来说,在读取了一条完整的语句之后,不立即对该行的变量赋值,而会在某个单条语句执行之前再进行赋值,也就是说“延迟”了对变量的赋值。

那么如何开启变量延迟呢?变量延迟又需要注意什么呢?举个例子说明一下:

例2:

@echo off

setlocal enabledelayedexpansion

set a=4

set a=5 & echo !a!

pause

结果:5

解说:启动了变量延迟,得到了正确答案。变量延迟的启动语句是“setlocal enabledelayedexpansion”,并且变量要用一对叹号“!!”括起来(注意要用英文的叹号),否则就没有变量延迟的效果。

分析一下例2,首先“setlocal enabledelayedexpansion”开启变量延迟,然后“set a=4”先给变量a赋值为4,“set a=5 & echo !a!”这句是给变量a赋值为5并输出(由于启动了变量延迟,所以批处理能够感知到动态变化,即不是先给该行变量赋值,而是在运行过程中给变量赋值,因此此时a的值就是5了)。

12.find  搜索文件中的字符串

find /v 显示所有未包含指定字符串的行

     /c 显示包含字符串的行数

     /n 显示行号

     “string”

13.dir 显示文件和文件夹

14.cls 清屏

15.title 修改cmd窗口标题

16.color 修改cmd窗口前景和背景颜色

color 0-9 A-F

前面未背景 后面为前景  默认color 07

17.ren 修改文件名字

ren [盘符:][路径]〈旧文件名〉〈新文件名〉

18.md 建立目录

MD[盘符:][路径名]〈子目录名〉

19.rd 删除目录

RD[盘符:][路径名][子目录名]

子目录中必须是空的

20.del 删除文件

DEL[盘符:][路径]〈文件名〉[/P]

使用说明:
(1)选用/P参数,系统在删除前询问是否真要删除该文件,若不使用这个参数,则自动删除;
(2)该命令不能删除属性为隐含或只读的文件;
(3)在文件名称中可以使用通配符;
(4)若要删除磁盘上的所有文件(DEL*·*或DEL·),则会提示:(Arey ou sure?)(你确定吗?)若回答Y,则进行删除,回答N,则取消此次删除作业

21.copy 复制文件夹

copy 源文件名 目标文件名

22.deltree 删除目标及其下所有文件和下级目录