bat(DOS)常用命令详解

时间:2024-03-11 13:35:24

1. echo命令:用来打印信息,也可以用来修改文件中的内容

  • cmd窗口中输入 echo /? 可以获取echo命令帮助,其中 bat命令后加上 /?表示获取该命令帮助信息
  • echo命令后直接加上要输出的信息,如果输出信息中有特殊符号(bat命令中用到的,例如>),输出信息就要加上双引号。此外echo还可以打印变量的值,如果想连续打印很多行,可使用&符号,例如下图操作
  • echo除了将信息打印在屏幕上,echo也可以将信息直接输出到文件中,格式为【echo 信息 > 文件】,如果文件不存在,就会创建一个新的文件,然后将内容写入,如果文件存在,会覆盖掉文件中的原有内容;如果不想覆盖原来内容,可以使用【echo 信息 >> 文件】,表示将新的信息追加到文档后。
  • echo on(脚本默认),bat脚本运行后,每条命令的结果都会打印在屏幕上

    echo off 会关闭回显,也就是脚本运行时不在打印每个命令,只能打印一些日志(如echo的输出结果)和一些错误,如下图操作

 

2.del 删除命令 (只能删除文件,无法删除目录), rd 只能删除目录,不能删除文件

 

  • del test   //删除当前目录下的test文件夹中的所有非只读文件(子目录下的文件不删除),删除前会询问
  • del /f test   //删除当前目录下的test文件夹中的所有文件(含只读文件;子目录下的文件不删除),删除前会确认
  • del /f /s /q test e:\mybat\*.doc   //删除当前目录下的test文件夹中所有文件及e:\mybat中所有doc文件(含只读文件;以及子目录下的文件;删除前不确认)
  • del /ar *.*   //删除当前目录下所有只读文件

    del /a-s *.*   //删除当前目录下除系统文件外所有的文件

  • 补充参数:/ar 、/ah、/as、/aa  分别表示删除只读、隐藏、系统、存档文件

                     /a-r、/a-h、/a-s、/a-a  分别表示删除只读、隐藏、系统、存档以外的文件

  • rd test //删除当前目录下的test空文件夹(如果test不为空文件夹,则不会被删除)
  • rd /s d:\test //删除d盘目录下的test文件夹(不论里面是否有文件或文件夹,一起删除),删除前确认
  • rd /s /q d:\test //静默删除d盘目录下test文件夹,删除前不用确认

3.cd 显示当前目录命令(在cmd中,.、..和\表示相对路径,.是当前目录,..是上一层目录,而\表示根目录)

  • cd .. //退出到上一个目录
  • cd /d D:      //进入D盘上次所在目录(比如上次目录是D:\test\aa,则执行完这个目录后就会跳到这个目录下)
  • cd  d:\       //进入D盘根目录(如果当前不在d盘下,则不执行,需要加 /d)
  • cd /d d:\       //进入D盘根目录(/d强转符号)
  • cd /d D:\test       //进入D盘下的test目录

4.REM 和 :: 注释标识命令(必须在段首位置)

  • rem 注释命令,该命令后的内容不被执行,但能回显
  • :: 注释命令===@rem,与rem不同的是,该命令后的内容不会回显

5.md:新建文件夹

  • md D:\test  //在D盘下创建test文件夹
  • md test1 test2 //在当前目录下创建test1和test2文件夹

6.dir:显示目录中的内容

  • dir  //显示当前目录下的文件夹和文件名以及修改时间
  • dir test //显示test目录下的文件
  • dir /b //只显示当前目录的文件夹名和文件名
  • dir /p //分页显示当前目录中的文件内容
  • dir /ad //显示当前目录中的文件夹
  • dir /a-d //显示当前目录中的文件
  • dir c:\windows\bb //显示该目录下的内容
  • dir test.txt //显示当前目录找那个test.txt的信息
  • dir /s //递归显示当前目录中的内容
  • dir test* //显示当前目录下以test开头的文件和文件夹的信息
  • dir /ah /os //只显示当前目录中隐藏的文件和目录,并按照文件大小从小到大排序

7.cls 清屏命令,清楚屏幕中的信息,tree:显示目录结构,tree d:\test //显示d盘test的目录结构

8.Bat脚本中%cd%和%~dp0的区别

  • 使用范围:%cd%:批处理脚本(bat脚本)、命令行窗口

        %~dp0:批处理脚本(bat脚本)

  • bat脚本执行时,两者代表的值是否会变化:

        %cd%:会。因为代表的是当前目录

        %~dp0:不会。因为代表的是脚本文件在磁盘的位置

  • 例如 

        set assets_path=..\assets\icon\jiangtai
        del /q %assets_path%
        %~dp0"..\sofewares\svn1.8\svn.exe" up %assets_path%

        该代码将会用svn更新jiangtai目录下的资源

9. ren:文件或目录重命名

  • ren test.txt tamp.bat   //将当前目录下的test.txt文件重命名为sample.bat
  • ren c:\test test2     //将c盘下的test文件重命名为test02

10. copy: 拷贝文件

  • copy test.txt e:\mybat   //将当前目录下的test.txt拷贝到e:\mybat目录下(若mybat中存在相同文件,则会询问是否覆盖)
  • copy sample e:\mybat   //将当前目录下的sample文件夹中的文件拷贝到e:\mybat下(存在相同目录,会询问是否覆盖)
  • copy test.txt e:\mybat\test1.txt  //将当前目录下的test.txt拷贝到e:\mybat下,并重命名为test1.txt(若存在test1.txt,则会询问是够覆盖)
  • copy /y test.txt e:\mybat   //将当前目录下的test.txt拷贝到e:\mybat下(无须询问,直接覆盖)