bat基本语法

 

目录

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语句

18.slip复制命令

 


注意: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
     
     
     
     
     

 

 

 

 
posted @   路走  阅读(3862)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 我与微信审核的“相爱相杀”看个人小程序副业
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~
点击右上角即可分享
微信分享提示