zoukankan      html  css  js  c++  java
  • 批处理 笔记

    18. if
    18.1 if not errorlevel number command
    if errorlevel 这个句子必须放在某个命令的后面,执行命令后由 if errorlevel 来判断命令的返回值
    number 取值范围为0-255,判断时值的排列顺序应该由大到小。返回的值大于等于指定的值时,条件成立

    例子
    @echo off
    dir c: rem退出代码为>=1就跳至标题1处执行,>=0就跳至标题0处执行
    IF ERRORLEVEL 1 goto 1
    IF ERRORLEVEL 0 goto 0 Rem 上面的两行不可交换位置,否则失败了也显示成功。
    :0 echo 命令执行成功! Rem 程序执行完毕跳至标题exit处退出
    goto exit
    :1 echo 命令执行失败! Rem 程序执行完毕跳至标题exit处退出
    goto exit
    :exit
    pause

    18.2 if [not] string1==string2 command
    str1和str2都为字符的数据,英文内字符的大小写将看作不同,这个条件中的等于号必须是两个
    条件相等后执行后面饿command

    为防止字符串中含有空格,可用以下格式:
    if [NOT] {string1}=={string2} command
    if [NOT] [string1]==[string2] command
    if [NOT] "string1"=="string2" command

    18.3 if [not] exist filename command
    EXIST filename为文件或目录存在的意思

    echo off
    IF EXIST autoexec.bat echo 文件存在!
    IF not EXIST autoexec.bat echo 文件不存在!

    19. setlocal 与变量延迟
    问题的引入,
    @echo off
    set a=4
    set a=5 & echo %a%
    pause
    结果:4
    不输出5的原因:总是读取一行,并做了预处理,所以输出结果为4

    为能感知环境变量的动态变化,批处理设计变量延迟。简而言之,在读取了一条完整的语句之后,不立即对该行的变量赋值,而会在某个单条语句执行之前再进行赋值
    @echo off
    setlocal enabledelayedexpansion
    set a=4
    set a=5 & echo !a!
    pause
    结果:5 解说:启动了变量延迟,得到了正确答案。变量延迟的启动语句是“setlocal enabledelayedexpansion”,并且变量要用一对叹号“!!”括起来(注意要用英文的叹号),否则就没有变量延迟的效果。

    使用 setlocal enableddelayedexpansion 启用变量延迟

    @echo off
    setlocal enabledelayedexpansion
    for /l %%i in (1,1,5) do (
    set a=%%i
    echo !a!
    )
    pause

    提示:在没有开启变量延迟的情况下,某条命令行中的变量改变,必须到下一条命令才能体现。
    @echo off
    ::目的:交换两个变量的值,但是不使用临时变量
    ::Code by JM 2007-1-24 CMD@XP
    ::出处:http://www.cn-dos.net/forum/viewthread.php?tid=27078
    set var1=abc
    set var2=123
    echo 交换前: var1=%var1% var2=%var2%
    set var1=%var2%& set var2=%var1%
    echo 交换后: var1=%var1% var2=%var2%
    pause

    20. attrib 显示或更改文件属性
    ATTRIB [+R|-R] [+A|-A] [+S|-S] [+H|-H] [[drive:] [path] filename] [/S [/D]]
    + 设置属性。 - 清除属性。 R 只读文件属性。 A 存档文件属性。 S 系统文件属性。 H 隐藏文件属性。 [drive:][path][filename] 指定要处理的文件属性。 /S
    处理当前文件夹及其子文件夹中的匹配文件。 /D 也处理文件夹。
    例: md autorun attrib +a +s +h autorun 上面的命令将建立文件夹autorun,然后将其设为存档、系统、隐藏属性
  • 相关阅读:
    继承
    成员变量,局部变量,静态变量
    几种常用排序
    jdk环境配置以及java执行过程
    基础语法
    数据类型
    关键字和标识符
    网络编程(二)-socket套接字
    反射
    多态
  • 原文地址:https://www.cnblogs.com/IS2120/p/6745970.html
Copyright © 2011-2022 走看看