zoukankan      html  css  js  c++  java
  • 【基础】批处理基础学习记录

    概述

    来源:https://www.yiibai.com/batch_script

    批处理脚本是为了自动执行重复的命令序列。脚本是一种可以通过自动化这些命令序列来减轻这种重复性工作的方法,以便让工作更容易和更高效。 在大多数组织中,批处理脚本以某种方式被合并,以实现自动化。

    命令列表

    编号

    命令

    描述

    1

    VER

    此批处理命令显示正在使用的MS-DOS的版本。

    2

    ASSOC

    这是将扩展名与文件类型(FTYPE)相关联的批处理命令,显示现有关联或删除关联。

    3

    CD

    此批处理命令用于更改进入不同的目录,或显示当前目录。

    4

    CLS

    这个批处理命令清除屏幕。

    5

    COPY

    此批处理命令用于将文件从一个位置复制到另一个位置。

    6

    DEL

    这个批处理命令用于删除文件而不是目录。

    7

    DIR

    该批处理命令列出目录的内容。

    8

    DATE

    这个批处理命令用于查找系统日期。

    9

    ECHO

    此批处理命令显示消息,或打开或关闭命令回显。

    10

    EXIT

    这个批处理命令退出DOS控制台。

    11

    MD

    这个批处理命令在当前位置创建一个新的目录。

    12

    MOVE

    这个批处理命令在目录之间移动文件或目录。

    13

    PATH

    此批处理命令显示或设置路径变量。

    14

    PAUSE

    该批处理命令会提示用户并等待输入一行。

    15

    PROMPT

    此批处理命令可用于更改或重置cmd.exe提示符。

    16

    RD

    这个批处理命令删除目录,但目录需要是空的才能被删除。

    17

    REN

    重命名文件和目录

    18

    REM

    此批处理命令用于批处理文件中的备注,防止执行备注的内容。

    19

    START

    该批处理命令在新窗口中启动程序,或打开文档。

    20

    TIME

    该批处理命令设置或显示时间。

    21

    TYPE

    该批处理命令将文件或文件的内容打印到输出中。

    22

    VOL

    此批处理命令显示卷标。

    23

    ATTRIB

    显示或设置当前目录中的文件的属性

    24

    CHKDSK

    这个批处理命令检查磁盘是否有问题。

    25

    CHOICE

    这个批处理命令为用户提供了一个选项列表。

    26

    CMD

    此批处理命令将调用另一个命令提示符实例。

    27

    COMP

    该批处理命令根据文件大小比较2个文件。

    28

    CONVERT

    此批处理命令将卷从FAT16FAT32文件系统转换为NTFS文件系统。

    29

    DRIVERQUERY

    此批处理命令显示所有已安装的设备驱动程序及其属性

    30

    EXPAND

    此批处理命令从压缩的.cab压缩文件中提取文件。

    31

    FIND

    该批处理命令在文件或输入中搜索字符串,输出匹配的行。

    32

    FORMAT

    此批处理命令将磁盘格式化为使用Windows支持的文件系统(如FATFAT32NTFS),从而覆盖磁盘的先前内容。

    33

    HELP

    该批处理命令显示Windows提供的命令的列表。

    34

    IPCONFIG

    此批处理命令显示Windows IP配置。显示连接的配置和连接的名称。

    35

    LABEL

    此批处理命令添加,设置或删除磁盘标签。

    36

    MORE

    此批处理命令一次显示一个或多个文件的内容。

    37

    NET

    根据使用的命令提供各种网络服务。

    38

    PING

    这个批处理命令通过网络将ICMP/IP “回显”发送到指定的地址的包。

    39

    SHUTDOWN

    该批处理命令关闭计算机,或者注销当前用户。

    40

    SORT

    该批处理命令从源文件获取输入,并按字母顺序排序其内容,从AZ或从ZA。它将在控制台上打印输出。

    41

    SUBST

    此批处理命令将驱动器号分配给本地文件夹,显示当前分配或删除分配。

    42

    SYSTEMINFO

    该批处理命令显示计算机及其操作系统的配置。

    43

    TASKKILL

    该批处理命令结束一个或多个任务。

    44

    TASKLIST

    此批处理命令列出任务,包括任务名称和进程标识(PID)。

    45

    XCOPY

    这个批处理命令以更高级的方式复制文件和目录。

    46

    TREE

    该批处理命令将当前目录的所有子目录的树显示为递归或深度的任何级别。

    47

    FC

    这个批处理命令列出了两个文件之间的实际差异。

    48

    DISKPART

    此批处理命令显示和配置磁盘分区的属性。

    49

    TITLE

    该批处理命令设置控制台窗口中显示的标题。

    50

    SET

    显示当前系统上的环境变量列表。

    教程

    第一个批处理脚本

    echo off命令表示不显示后续的命令本身@表示不显示本行的命令

    其中rem表示注释,类似于其他语言中的#或者//

    >表示把结果重定向到文件中

    @echo off 
    Rem This is for listing down all the files in the directory Program files 
    dir "C:Program Files" > C:lists.txt 
    echo "The program has completed"
    命令行参数

    批处理脚本支持命令行参数的概念,其中参数可以在被调用时传递给批处理文件。参数可以通过变量%1%2%3等从批处理文件中调用。

    以下示例显示了一个批处理文件,它接受3个命令行参数,并将它们回显到命令行屏幕。

    @echo off 
    echo %1 
    echo %2 
    echo %3

    执行效果如下:

    变量
    set命令

    变量可以被初始化的另一种方式是通过“set”命令。 以下是set命令的语法。

    语法

    set [/A] variable-name=value

    其中 -

    • variable-name - 是想要设置的变量的名称。
    • value - 是需要根据变量设置的值。
    • /A - 如果该值本质上是数值,则使用此开关。

    字符串

    @echo off 
    set message=Hello World 
    echo %message%

    数字

    备注 : 我试了下直接echo %a% + %a%没有得到预期的结果 , 必须在set语句中完成运算

    @echo off 
    SET /A a=5 
    SET /A b=10 
    SET /A c=%a% + %b% 
    echo %c%
    局部与全局变量

    默认情况下,变量是整个命令提示符会话的全局变量。 调用SETLOCAL命令,使变量局部在脚本的范围内。 在调用SETLOCAL之后,任何变量赋值在调用ENDLOCAL,调用EXIT,或者当执行到达脚本中的文件结尾(EOF)时都会返回。

    @echo off 
    set globalvar=5
    SETLOCAL
    set var=13145
    set /A var=%var% + 5
    echo %var%
    echo %globalvar%
    ENDLOCAL
    echo %var%
    echo %globalvar%

    执行效果如下:

    可以看出局部变量在执行endlocal后被销毁 , 默认的变量(全局变量)仍然存在

    环境变量

    注释

    rem或者::

    @echo off
    rem 这是一个注释
    ::这也是一个注释
    字符串
    @echo off
    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%
    数组

    暂不学习

    决策结构
    if语句
    @echo off 
    SET /A a=5 
    SET /A b=10 
    SET /A c=%a% + %b% 
    if %c%==15 echo "The value of variable c is 15" 
    if %c%==10 echo "The value of variable c is 10"
    if/else语句
    @echo off 
    SET /A a=5 
    SET /A b=10
    SET /A c=%a% + %b% 
    if %c%==15 (echo "The value of variable c is 15") else (echo "Unknown value") 
    if %c%==10 (echo "The value of variable c is 10") else (echo "Unknown value")
    if defined
    @echo off 
    SET str1=String1 
    SET str2=String2 
    if defined str1 echo "Variable str1 is defined"
    if defined str3 (echo "Variable str3 is defined") else (echo "Variable str3 is not defined")
    if exists
    @echo off 
    if exist C:set2.txt echo "File exists" 
    if exist C:set3.txt (echo "File exists") else (echo "File does not exist")
    嵌套if
    @echo off
    SET /A a=5
    SET /A b=10
    if %a%==5 if %b%==10 echo "The value of the variables are correct"
    if errorlevel
    @echo off
    ping baidu.com
    if errorlevel 0 echo "ping baidu.com ok"
    if errorlevel 1 echo "ping baidu.com not ok"
    ping dsadsadasdsadsadqgt3432.com
    if errorlevel 0 echo "ping dsadsadasdsadsadqgt3432.com ok"
    if errorlevel 1 echo "ping dsadsadasdsadsadqgt3432.com not ok"
    goto
    @echo off 
    SET /A a=5 
    
    
    if %a%==5 goto :labela 
    if %a%==10 goto :labelb
    
    
    :labela 
    echo "The value of a is 5" 
    
    
    exit /b 0
    
    
    :labelb 
    echo "The value of a is 
    运算符
    算术运算符

    批处理脚本语言支持任何语言的普通算术运算符。 以下是可用的算术运算符。

    运算符

    描述

    示例

    +

    两个操作数相加

    1 + 2的结果为:3

    -

    从第一个减去第二个操作数

    2 - 1的结果为:1

    *

    两个操作数的乘法

    2 * 3的结果为:6

    /

    分母除以分子

    3 / 2的结果为:1.5

    %

    模运算符,整数/浮点除法后的余数

    3 % 2的结果为:1

    @echo off
    SET /A a=5
    SET /A b=10
    SET /A c=%a%+%b%
    echo %c%
    SET /A c=%a%-%b%
    echo %c%
    SET /A c=%b%*%a%
    echo %c%
    SET /A c=%b%/%a%
    echo %c%
    rem 备注:发现模运算符在批处理文件里面是%%
    SET /A c=%b% %% %a%
    echo %c%
    关系运算符

    关系运算符允许对象的比较。以下是可用的关系运算符。

    运算符

    描述

    示例

    EQU

    测试两个对象之间的相等性

    2 EQU 2的结果为:真

    NEQ

    测试两个对象之间的不相等性

    3 NEQ 2的结果为:真

    LSS

    检查左对象是否小于右操作数

    2 LSS 3的结果为:真

    LEQ

    检查左对象是否小于或等于右操作数

    2 LEQ 3的结果为:真

    GTR

    检查左对象是否大于右操作数

    3 GTR 2的结果为:真

    GEQ

    检查左对象是否大于或等于右操作数

    3 GEQ 2的结果为:真

    @echo off
    set /A a=5
    set /A b=6
    if not %a% EQU %b% (echo "yes") else (echo "no")
    if %a% NEQ %b% (echo "yes") else (echo "no")
    rem 其他的也类似..
    逻辑运算符

    暂不学习

    赋值运算符

    批处理脚本语言还提供了赋值操作符。 以下是可用的赋值运算符。

    运算符

    +=

    这将右操作数相加到左操作数,并将结果分配给左操作数

    Set /A a = 5; a += 3,结果为:8

    -=

    从左操作数中减去右操作数,并将结果赋给左操作数。

    Set /A a = 5; a -= 3,结果为:8

    *=

    将右操作数与左操作数相乘,并将结果赋给左操作数。

    Set /A a = 5; a *= 3,结果为:15

    /=

    将左操作数除以右操作数,并将结果赋给左操作数。

    Set /A a = 6; a/ = 3,结果为:15

    %=

    将两个操作数取模,并将结果赋给左操作数

    Set /A a = 5; a% = 3,结果为:2

    @echo off
    SET /A a=5
    SET /A a+=5
    echo %a%
    SET /A a-=5
    echo %a%
    SET /A a*=5
    echo %a%
    SET /A a/=5
    echo %a%
    SET /A a%=5
    echo %a%
    按位运算符

    按位运算符也可以在批处理脚本中使用。 以下是可用的运算符。

    • & - 这是按位“和”运算符
    • | - 这是按位“或”运算符
    • ^ - 这是按位“异或”或“独占”或操作符

    以下是展示这些运算符的真值表。

    输入输出

    太深奥待学习

  • 相关阅读:
    表数据转换为insert语句
    Google Map Api 谷歌地图接口整理
    VS预生成事件命令行 和 生成后事件命令行
    C#程序开机运行
    枚举数据源化
    winform分页管理
    数据库访问驱动
    sql时间格式
    sysobjects.xtype介绍
    编码标准的多样性
  • 原文地址:https://www.cnblogs.com/mkdd/p/13084946.html
Copyright © 2011-2022 走看看