zoukankan      html  css  js  c++  java
  • .bat学习-基础语法(常用)

    一般来说,脚本或者语言都有相同地方

    定义变量,输入,输出,判断条件等等。知道的相同之处,我们就可以借助强大的搜索引擎进行查找我们想要知道的东西。

    bat为批处理脚本BATCH。现在只知道是使用于windows操作系统用来执行操作的批处理脚本

    基础之前setlocal和endlocal

    在一个bat文件内定义变量之前,一定要文件头部调用一个命令

    setlocal

    设置临时改变系统变量,,这样我们定义或修改变量,只对本bat文件有效。

    我们获取到的系统环境变量如PATH,或者JAVA_HOME只是系统环境变量的值的拷贝,不会对原系统环境变量有任何影响

    假设我们系统环境变量Path=“aa”

    系统变量进行修改为Path=“aabb”

    当bat文件执行完毕,

    会默认调用endlocal。结束批处理文件中环境改动的本地化操作。

    我们在cmd命令行中执行下面命令

    echo %PATH%

    输出的还是原本的系统环境变量值

    但是如果我们主动调用endlocal命令后,在进行PATH变量进行修改,

    然后又调用call "aa.bat" start ,,如果我们在aa.bat文件中用到Path变量时,就不是我们想要的变量值aa的。

    基础语法

    setlocal enabledelayedexpansion
    设置延迟环境变量扩展,
    cmd脚本会对每一行命令进行预处理,有一个变量识别过程,遇到%引用变量时,会查找这个变量的值,然后对这个变量名称进行值替换
    对于下面的预处理,会先查找到a的值为10,然后替换echo %a%,==>echo 10,这就不是我们预期的结果,
    set a=10
    set a=12&echo %a%
    设置启用这个选项后就可以正确输出我们预期,需要进行一点小改动,echo %a%要改成 echo !a!

    1. 定义变量

    set 变量名=变量值

    2.输出

    2.1 输出信息到控制台

    echo "字符串"

    2.2 新建文件,输出内容到文件

     ECHO 文件内容>文件名
    >是将文件中内容全部替换,>>是在文件最后追加内容

    3. 条件控制语句

    if aa==AA(
        echo "is equal"
    )else(
        echo "compare is not equal"
    )
    if exist  判断文件是否存在
    if not exist not表示相反,
    也可以使用下面的equ,等来尽心操作比较

    equ 等于     ==
    gtr 大于     >
    geq 大于或等于  >=
    lss 小于     <
    leq 小于或等于  <=
    neq 不等于    !=

    4 循环

    for %%I in (A,B,C) do echo %%I
    以逗号为分隔符,循环三次输出
    A
    B
    C
    将逗号换为空格、跳格、逗号或等号,输出的结果和上面都是一样的。这些符号都是作为分割元素的符号

    5其他常用语法

    :name
    //设置标签,可以使用goto name,使程序跳到这个标签继续执行程序
    
    goto
    //流程跳转语句,同上解释
    
    shift
    //更改批处理文件中可替换参数的位置,原本最大参数%0~%9
    //如果有11个参数时,需要调用shift /1 将第2个参数作为%0位置,这样我们
    //就可以获取到第11个参数,也就是%9
    //shift 如果后面不带/n,则默认截掉第一个参数,第二个作为%0
    
    call "xxx.bat" arguments
    //在当前批处理文件中调用另一个bat文件,执行完后会回到当前文件中继续执行操作,arguments作为执行xxx.bat文件的启动参数

    6其它系统变量

    %CD%    //返回当前目录路径
    %DATE%    //返回当前日期
    %ERRORLEVEL%
    //系统 返回上一条命令的错误代码。通常用非零值表示错误
    %NUMBER_OF_PROCESSORS%
    //系统 指定安装在计算机上的处理器的数目
    %temp%=C:UsersHELLOW~1AppDataLocalTemp
    //返回系统的临时文件存放路径
    %~nx0 就是表示程序的名称+扩展名
    "%~f0" : 简单说就是表示当前命令的绝对路径.
    "%*" : 我们知道 %1 表示第一个参数, 依次类推, %2 表示第二个.... 那么 %* 就很好理解了, 代表所有参数.

    @echo (off|on)关闭或打开回显命令

    PAUSE 停止dos窗口,一般在最后调用,防止dos窗口关闭

  • 相关阅读:
    Linux排序命令sort笔记
    Linux排序命令sort笔记
    Linux文本截取命令cut​笔记
    排序和搜索
    栈和队列
    链表
    顺序表
    Linux编辑器|gedit|vi|vim编辑器
    Linux简介
    简单学习Git
  • 原文地址:https://www.cnblogs.com/gne-hwz/p/10009130.html
Copyright © 2011-2022 走看看