目录

1.注释

2.开启关闭回显

3.输出和换行

4.设置标题title

5.if语句

6.set用法

7.ping命令

8.start命令

9.timeout延迟

10.call使用 

11.ren命令重命名文件(夹)

12.xcopy命令复制文件 

13.del命令删除文件 

14.move命令移动文件(夹)

15.md命令创建文件夹

16.变量%0–%9

17.for语句


注意:BAT脚本文件为ANSI编码(否则出现中文乱码)

1.注释

rem注释时,不执行后面的语句,但会显示;

:: 注释内容(第一个冒号后也可以跟任何一个非字母数字的字符)

%注释内容%(可以用作行间注释,不能出现重定向符号和管道符号)

2.开启关闭回显

@置于语句前则该条语句不会回显(无视echo on)

echo off关闭回显功能,直到出现echo on,但其本身会回显,往往和@一起使用,即@echo off(关闭所有回显功能)

3.输出和换行

echo后加内容即输出该内容,如:echo “welcome!”;

echo.换行命令,即echo后加一个点

4.设置标题title

     返回值判断

 
  1.  

    @echo off

  2.  

    ::title设置标题

  3.  

    title 启动标题

  4.  

    ::用以判断上一条命令是否执行成功,默认为0,出错为1

  5.  

    echo %errorlevel%

  6.  

    if %errorlevel% 0 echo 执行成功

  7.  

    if %errorlevel% 0 (

  8.  

    echo 执行成功

  9.  

    ) else (

  10.  

    echo 执行失败

  11.  

    )

  12.  

    pause

 

5.if语句

注意:if语句块在执行时是当做一条语句加载的,故需要延迟赋值来解决其内部变量引用的问题 

 
  1.  

    ::if常规用法,注意空格

  2.  

    @echo off

  3.  

    :start

  4.  

    set /p a=

  5.  

    if not %a%==1 (

  6.  

    echo 请输入1

  7.  

    goto start

  8.  

    ) else (

  9.  

    echo 输入正确

  10.  

    )

  11.  

    pause>nul

 

6.set用法

接收用户输入数据

 
  1.  

    @echo off

  2.  

    set /p param=请输入密码:

  3.  

    echo %param%

  4.  

    pause

 

定义变量和延迟赋值

 
  1.  

    ::输出为1

  2.  

    @echo off

  3.  

    set a=1

  4.  

    set a=2&echo %a%

  5.  

    pause

 

系统变量

 
  1.  

    @echo off

  2.  

    ::查看所有环境变量

  3.  

    set

  4.  

    ::查看环境变量JAVA_HOME的值

  5.  

    if defined JAVA_HOME echo %JAVA_HOME%

 

定义数字表达式

 
  1.  

    @echo off

  2.  

    set a=1&set b=6

  3.  

    set c=%a%+%b%

  4.  

    ::输出1+6

  5.  

    echo %c%

  6.  

    set d=a+b

  7.  

    ::输出a+b

  8.  

    echo %d%

  9.  

    set /a e=a+b

  10.  

    ::输出7

  11.  

    echo %e%

  12.  

    pause

 

7.ping命令

 
  1.  

    @echo off

  2.  

    ping 172.20.34.22

  3.  

    ::无休止ping某地址

  4.  

    ping www.baidu.com -t

 

8.start命令

 注意:执行start时将开启一个新线程来执行该程序,原程序不受影响继续执行 

 
  1.  

    @echo off

  2.  

    echo 当前正在运行的批处理文件所在路径:%~dp0

  3.  

    start /b %~dp0bin\zkServer

  4.  

    pause

 

9.timeout延迟

 
  1.  

    @echo off

  2.  

    set a=1

  3.  

    ::延迟五秒输出

  4.  

    timeout 5 >nul

  5.  

    echo %a%

  6.  

    pause

 

10.call使用 

调用子脚本,在当前程序中运行子脚本代码,子脚本执行完后继续执行本程序之后的代码

call test1.bat

11.ren命令重命名文件(夹)

 
  1.  

    @echo off

  2.  

    ::将1.txt重命名为58.bat

  3.  

    ren d:\test\1.txt 58.bat

  4.  

    ::将d:\test\目录下所有文件名为1开头的txt文件改为bat文件

  5.  

    ren d:\test\1*.txt *.bat

  6.  

    ::将d:\test\目录下所有文件名为1开头三个字符的bat改为txt文件

  7.  

    ren d:\test\1??.bat ???.txt

 

12.xcopy命令复制文件 

 
  1.  

    @echo off

  2.  

    ::将D:\test目录下所有文件(夹)复制到F:\test1

  3.  

    ::/F目录下所有文件(夹),/y已存在时直接覆盖

  4.  

    xcopy D:\test F:\test1 /e /y

 

13.del命令删除文件 

 
  1.  

    @echo off

  2.  

    ::删除该层目录下的所有文件,需要确认[Y/N]

  3.  

    del d:\test

  4.  

    pause

  5.  

    ::不需要确认

  6.  

    del /q d:\test

  7.  

    ::删除该目录下所有层级的文件,不删除文件夹,需要逐个文件夹确认

  8.  

    del /s d:\test

  9.  

    ::删除文件111.png,不需要确认

  10.  

    del d:\test\111.png

 

14.move命令移动文件(夹)

 

 
  1.  

    @echo off

  2.  

    ::文件夹移动,如果test文件夹存在,则将test5文件夹移动到test文件夹下

  3.  

    ::如果test文件夹不存在,则将test5文件夹移动到test1文件夹下并重命名为test

  4.  

    ::注意:文件夹移动不能跨分区

  5.  

    move e:\test5 e:\test1\test

  6.  

    ::将d:\test\1.txt文件移动到e:\下并重命名为23.txt

  7.  

    ::如果该目录已存在23.txt,则会覆盖

  8.  

    move d:\test\1.txt e:\23.txt>nul&&echo 移动成功并重命名

  9.  

    ::将e:\23.txt文件移动到e:\test文件夹下

  10.  

    move e:\23.txt e:\test>nul&&echo 移动到文件夹下

 

15.md命令创建文件夹

 
  1.  

    ::创建文件夹

  2.  

    md e:\test\test1

  3.  

    ::文件夹名有空格需要加引号

  4.  

    md “e:\test op”

  5.  

    ::空格隔开,创建多个

  6.  

    md e:\test1 e:\test9\test2 “e:\test5 test6”

 

16.变量%0–%9

%0指该文件本身,%1–%9为接收到的参数

17.for语句

  •  
    1.  

      @echo off

    2.  

      set str=c d e f g h i j k l m n o p q r s t u v w x y z

    3.  

      echo 当前硬盘的分区有:

    4.  

      for %%i in (%str%) do if exist %%i: echo %%i:

    5.  

      pause

     

18.goto

  指定跳转到标签,找到标签后,程序将处理从下一行开始的命令。

  语法:goto label (label是参数,指定所要转向的批处理程序中的行)

  行用 :label 表示

 
  1.  

    @echo off

  2.  

    :start

  3.  

    cls

  4.  

    set /p numis=请输入数字1或2:

  5.  

    if /i “%numis%”==“1” goto 1

  6.  

    if /i “%numis%”==“2” (goto 2) else (echo 输入有误!&&pause>nul&&goto start)

  7.  

     

  8.  

    :1

  9.  

    echo 你输入的是1

  10.  

    pause>nul&&goto start

  11.  

    :2

  12.  

    echo 你输入的是2

  13.  

    pause>nul&&goto start

 

 

 

 

 

原文地址:http://www.cnblogs.com/jingxian666/p/16814375.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性