set基本用法

在 SET 命令中添加了两个新命令行开关:


    SET /A expression
    SET /P variable=[promptString]


/a 参数可以让set支持数学符号进行数学运算(以下优先级递减)
 ()                  - 分组
    ! ~ -               - 一元运算符
    * / %               - 算数运算符
    + -                 - 算数运算符
    << >>               - 逻辑移位
                       - 按位“与”
    ^                   - 按位“异”
    |                   - 按位“或”
    = *= /= %= += -=    - 赋值
      &= ^= |= <<= >>=
    ,                   - 表达式分隔符
【例】set /a var=(2+3)*5
     set /a a=1+1,b=2+1,c=3+1【此处注意“,”的用法】
     echo %a% %b% %c%
     set /a var1=c,var2=vb,var3=java【此为错误命令,无法依次赋值】
     set /a var*=2 等同于set /a var=%var%*2


/p命令开关允许将变量设成用户输入的一行输入。读取输入之前,显示指定的promptString(可以不指定)


set截取字符串:
%Var:~start,len%【从0开始】 
【例】 
@echo off
set srcString=www.baidu.com
echo 截取前: %srcString%
set destString=%srcString:~4,5%
echo 截取后: %destString%
pause


截取倒数len个字符


%var:~-len%
【例】
@echo off
set srcString=www.baidu.com
echo 截取前: %srcString%
set destString=%srcString:~-4%
echo 截取后: %destString%
pause


截取从第一位开始,倒数第len位结束的值
%var:~0,-len%
【例】
@echo off
set srcString=www.baidu.com
echo 截取前: %srcString%
set destString=%srcString:~0,-10%
echo 截取后: %destString%
pause


echo %var:~begin%       【显示var中第begin个字符以后的所有字符】
echo %var:~begin,len%   【显示var第begin个符以后的len的字符】
echo %var:~-len%        【显示var最后len个字符】
echo %var:~begin,-len%  【显示var中从begin开始,除了最后len个字符的其他字符,相                          当于掐头去尾】




set var=                【取消变量】


set设置的变量在if和for的复合语句里是一次性全部替换的
【例】
@echo off
set p=aaa
if %p%==aaa ( 
echo %p%
echo execute here!
set p=
set p=bbb
echo %p%
)【p的值不会再改变】
输出:aaa
execute here!
aaa


读取if语句时已经将所有的%p%替换为aaa,这里说的“替换”,在/?帮助中就是“扩充”,“环境变量扩充”,可以启用“延缓环境变量扩充”,用!来引用变量,即!变量名!
上述例子可改成:
【例】
@echo off
setlocal enabledelayedexpansion
set p=aaa
if %p%===aaa (
echo %p%
echo execute here!
set p=
set p=bbb
echo !p!
::注意这里用的是"!"
)
输出:aaa
execute here!
bbb











































评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值