570
文章
·
28964
阅读
570
文章
·
28964
阅读

有55人阅读过 bat代码 语法
发布于2021/12/04 更新于2022/11/16
[ 教程仅保证更新时有效,请自行测试。]

开头@echo off

标题 TITLE xxxx

窗口大小 mode con cols=宽(纯数字,多少行) lines=30(纯数字,多少列)

暂停页面直接pause

输出内容echo

设置字段set a=xxxx

合并字段 set c=%a%%b%, 可以无限合并下去,可以重复引用

计算并赋予字段(c) set a/ c=%a%+%b%

空行echo.

打开文件或网址 start

唤醒另一个cmd,call

相互唤醒,尾部相互call

代码片段 :part

执行片段 goto part

退出cmd  endd

采集输入内容,并赋予字段(a) set /p a="提示语"


获取当前日期 %date% 结果为 2022/11/16 周三

获取当前时间 %time%  结果为 16:49:42.46

截取字符 %字段:~起始位置,字符数%

    set abc=hello world, this string come from bat

    echo 原字符串为:%abc%

    echo 截取前5个字符:%abc:~0,5%

    echo 截取最后5个字符:%abc:~-5%

    echo 截取第一个到倒数第6个字符:%abc:~1,-5%

    echo 从第4个字符开始截取5个字符:%abc:~3,5%

    echo 从倒数第14个字符开始截取5个字符:%abc:~-14,5%



    提取年月日信息

    echo %date:~0,10%

    提取星期几信息

    echo %date:~-3%

    提取时间中的时和分

    echo %time:~0,5%

    提取时和分和秒信息

    echo %time:~0,-3%

    年

    echo %Date:~0,4%

    月

    echo %Date:~5,2%

    日

    echo %Date:~8,2%

    时

    echo %Time:~0,2%

    分

    echo %Time:~3,2%

    秒

    echo %Time:~6,2%

注:上述取小时的代码存在问题, 如果时间小于10点, 上述得到的小时为" 9"而不是"09", 如果使用小时的代码未对空格做特殊处理, 容易导致问题,用一下代码做判断处理

set time0=%time: =0%

set hour=%time0:~0,2%

或者

set hour=%time:~0,2%

if %hour% LSS 10 (

    set hour=0%time:~1,2%

)

其实前者就是先把time中的空格换成0, 然后再取小时数据; 后者就是先取时间, 然后通过比较时间, 判断需不需要在前面补0;


替换字符串 %原字段:需要替换的内容=替换内容%  例如 

set a=112233

set b=%a:22:55% 把22换成55




高级应用

菜单

:menu

cls

echo 选项1

echo 选项2

echo 选项3

:cho

set chose=

set /p choice=   请选择:

IF NOT "%choice%"=="" SET choice=%choice:~0,1%

if /i "%choice%"=="1" goto (代码片段part1)

if /i "%choice%"=="2" goto (代码片段part2)

if /i "%choice%"=="3" goto (代码片段part3)

echo 选择无效,请重新输入

echo.

goto cho


文章对你有帮助吗?
  • 一般[0]
  • 很赞[0]
  • 没用[0]
  • 垃圾[0]
  • 无语[0]

继续阅读:

扫一扫,手机浏览手机访问本站