zoukankan      html  css  js  c++  java
  • 【Cmd】Windows下批处理常用命令总结

    Date: 2018.6.11


    1、参考

    https://www.cnblogs.com/Braveliu/p/5081084.html
    https://blog.csdn.net/zhouzihan520xj/article/details/40301041
    https://blog.csdn.net/yuntiank/article/details/7481264
    https://blog.csdn.net/listener51/article/details/80631448

    2、set命令主要用法

    2.1 set打印系统环境变量

    直接cmd下,输入set即可!

    2.2 set设置变量的值(主要功能)
    set aa=0123456789
    echo %aa% ##引用变量的值
    0123456789
    2.3 set /p(基本功能)
    set /p var=请输入变量的值:
    echo %var%

    命令解析:
    /p命令语法,作用可以在用户输入前加一段说明性的描述,即想让用户输入什么内容之类的说明。这条命令可以用于根据提示获取用户输入!

    2.4 set /a(基本功能)
    @echo off
    rem +运算符
    set /a var=1+1
    echo %var%
    rem ()运算符
    set /a var=(1+1) + (1+1)
    echo %var%
    rem *运算符
    set /a var*=2
    echo %var%
    rem ,运算符 注意:求varB和varC时,两种写法的区别
    set /a varA=var, varB=%var%*2, varC=var*3
    echo %varA% %varB% %varC%
    rem 与运算符,必须双引号括起来
    set /a varD=1"&"0
    echo %varD%
    rem 或运算符,必须双引号括起来
    set /a varE=1"|"0
    echo %varE%
    rem 异运算符,必须双引号括起来
    set /a varF=0"^"0
    echo %varF%
    pause>nul

    运行结果:
    e这里写图片描述
    命令解析:
    /a expression 即可以用各种表达式为变量赋值。

    2.5 set符号或变量替换(高级功能)
    set src=I love you
    echo %src%
    set dest=%src:you=her%
    echo %dest%

    运行结果:
    这里写图片描述
    命令解析:

    set des=%src:str1=str2%

    作用:把源变量src的值中所有的str1字符串替换成str2字符串,从而组合形成目标变量des的值。

    应用:bat文件命令行去除变量的空格:

    set abc=             u            v  w          x    y          z                 
    set "abc=%abc: =%"  
    echo 去除所有空格后结果为:%abc%  
    pause
    2.6 set取舍/字符提取(高级功能)

    %data:~0,4%
    假设:箭头→ ← 分别表示向右、向左
       set aa=1234567890

    echo %aa:~1,5%      //指针向右→偏移1位,然后从指针处开始向右→提取5个字符.
    echo %aa:~0,-3%     //指针不偏移,→提取所有字符,并除去最后3个字符.
    echo %aa:~5%        //单个数字,不指定长度值.表示指针→偏移5个字符,然后,→提取所有字符.
    echo %aa:~-5%       //单个负值,特例,表示指针反方向偏移,从最右端起,←偏移5位,然后从指针处开始提取所有字符.也可以简单理解为提取字符串末尾5个字符.

    总结:
    1、偏移量为正值时,表示指针向右移动;为负值时,表示指针从字符串最右端起向左移动.
    2、如果长度值为正,表示向右提取若干个字符;如果为负,表示向右提取所有字符,并去除若干个字符.”若干个=长度值的绝对值。”提取字符的方向总是自左向右进行的.
    3、如果为单个数字,那么这个数字表示的是偏移量,长度值取默认值,既是字符串的”余数”,也就是从指针处开始,向右方向的所有字符.如果这个数字是负数,可以简单的理解为:提取字符串末尾的若干个字符.(正确的解释应该是:表示指针反方向偏移,从最右端起,←偏移若干位,然后从指针处开始→提取所有字符)

    3、for /f命令用法

    解析文本功能
    命令格式:

    1.FOR /F ["options"] %%i IN (file) DO command
    2.FOR /F ["options"] %%i IN ("string") DO command--注意双引号
    3.FOR /F ["options"] %%i IN ('command') DO command--注意单引号

    参数说明:

    file代表一个或多个文件,可以使用通配符。
    string 代表字符串
    command代表命令
    [“options”]选项有多个:
    eol=c - 指定一个行注释字符,遇到c开头的行就忽略掉。
    skip=n - 指定在文件开始时忽略的行数。
    delims=xxx - 指定分隔符。默认是空格和TAB。
    tokens=x,y,m-n - 指每行的哪一个符号被传递到每个迭代
    的 for 本身。这会导致额外变量名称的分配。m-n
    格式为一个范围。通过 nth 符号指定 mth。如果
    符号字符串中的最后一个字符星号,
    那么额外的变量将在最后一个符号解析之后
    分配并接受行的保留文本。
    usebackq-usebackq 是一个增强型参数,当使用了这个参数之后,原来的for语句中第一个括号内的写法要做如下变动:如果第一个括号里的对象是一条命令语句的话,原来的单引号’要改为后引号`;如果第一个括号里的对象是字符串的话,原来的双引号”要改为单引号’;如果第一个括号里的对象是文件名的话,要用双引号”括起来。

    for /p详细用法详见https://blog.csdn.net/yuntiank/article/details/7481264

    1)切分字符串:

    for /f "delims=," %%i in (test.txt) do echo %%i 

    2)userbackq使用

    FOR /F "usebackq delims==" %i IN (`set`) DO @echo %i

    usebackq 是一个增强型参数,当使用了这个参数之后,原来的for语句中第一个括号内的写法要做如下变动:如果第一个括号里的对象是一条命令语句的话,原来的单引号’要改为后引号`;如果第一个括号里的对象是字符串的话,原来的双引号”要改为单引号’;如果第一个括号里的对象是文件名的话,要用双引号”括起来。

    4、findstr命令用法

    功能:在文件中寻找匹配的字符串

    C:UsersAdministrator>help findstr
    在文件中寻找字符串。

    FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/P] [/F:file]
    [/C:string] [/G:file] [/D:dir list] [/A:color attributes] [/OFF[LINE]]
    strings [[drive:][path]filename[ …]]
    /B 在一行的开始配对模式。
    /E 在一行的结尾配对模式。
    /L 按字使用搜索字符串。
    /R 将搜索字符串作为一般表达式使用。
    /S 在当前目录和所有子目录中搜索匹配文件。
    /I 指定搜索不分大小写。
    /X 打印完全匹配的行。
    /V 只打印不包含匹配的行。
    /N 在匹配的每行前打印行数。
    /M 如果文件含有匹配项,只打印其文件名。
    /O 在每个匹配行前打印字符偏移量。
    /P 忽略有不可打印字符的文件。
    /OFF[LINE] 不跳过带有脱机属性集的文件。
    /A:attr 指定有十六进位数字的颜色属性。请见 “color /?”
    /F:file 从指定文件读文件列表 (/ 代表控制台)。
    /C:string 使用指定字符串作为文字搜索字符串。
    /G:file 从指定的文件获得搜索字符串。 (/ 代表控制台)。
    /D:dir 查找以分号为分隔符的目录列表
    strings 要查找的文字。
    [drive:][path]filename
    指定要查找的文件。
    除非参数有 /C 前缀,请使用空格隔开搜索字符串。
    例如: ‘FINDSTR “hello there” x.y’ 在文件 x.y 中寻找 “hello” 或
    “there”。’FINDSTR /C:”hello there” x.y’ 文件 x.y 寻找
    “hello there”。
    正则表达式的快速参考:
    . 通配符: 任何字符
    * 重复: 以前字符或类出现零或零以上次数
    ^ 行位置: 行的开始
    $ 行位置: 行的结尾
    [class] 字符类: 任何在字符集中的字符
    [^class] 补字符类: 任何不在字符集中的字符
    [x-y] 范围: 在指定范围内的任何字符
    x Escape: 元字符 x 的文字用法

    功能测试可参考:
    https://blog.csdn.net/zhouzihan520xj/article/details/40301041

  • 相关阅读:
    jvm05
    jvm04
    jvm03
    jvm02
    jvm01
    rabbitmq-01
    lock接口认识及可重入锁的实现
    volitile的使用
    自旋锁,死锁与重入锁
    上机实验4--求序列的最大元素和最小元素
  • 原文地址:https://www.cnblogs.com/SoaringLee/p/10532450.html
Copyright © 2011-2022 走看看