【dos BAT】关于DOS的批处理学习过程 之二

        原本以为昨晚能把日志都写完的,不想经理临时给任务,于是暂停了,今天一看昨天的阅读过半百了,于是今天再接再厉,把批处理的一些用法给写完。写写什么呢

SET吧就写它了。

•SET 显示、设置或删除cmd.exe 环境变量
1.直接在批处理中设置变量的方法 :               set [var =[ string]] 
set 是命令   var是变量名  =号右边的“value"是变量的值,要引用这个变就把var变量名用两个%,如%var%
eg.    set ResourcePath=%cd%          %cd%表示当前路径
           set Option=%1                            %1表示第一个参数
 
相关的补充可以看看
%CD% - 扩展到当前目录字符串。

%DATE% - 用跟 DATE 命令同样的格式扩展到当前日期。

%TIME% - 用跟 TIME 命令同样的格式扩展到当前时间。

%RANDOM% - 扩展到 0 和 32767 之间的任意十进制数字。

%ERRORLEVEL% - 扩展到当前 ERRORLEVEL 数值。

%CMDEXTVERSION% - 扩展到当前命令处理器扩展名版本号。

%CMDCMDLINE% - 扩展到调用命令处理器的原始命令行。

%i   %[1-9]
<span style="font-family:Arial;BACKGROUND-COLOR: #ffffff"></span>
2.需要提供一个交互界面   加上/P
eg.    set /p  var = input value:
 
具体的
echo 加上/p也可以将命令行开关的变量设置成输入,随便也可以回顾一下if的用法

set /p var= input the  value: 
if %var%== 1 echo you had input 1 
if not %var%==1 echo 你输入的是一个非1的数

感觉是不是很有必要讲讲IF的用法呀,没事先把set这个骨头啃下再说吧。

结合这个/A,/P我们来做点什么呢??要不来个四则运算吧。看我的Arith_operations.BAT

@echo off

title   四则运算批处理 Arithmetic operations

@echo off

set /p input=请输入计算表达式:

set /a var=%input%

echo 计算结果:%input%=%var%

pause
<span style="FONT-SIZE: 16px"></span> 
<span style="FONT-SIZE: 16px">这个我不上图,大家兴趣的可以试试</span>
set还有什么功能呢??字符串的处理,这是很有用的
 
3.字符串的处理,这个是比较常用的,也很实用呵呵
 
3.1字符串的替换            %PATH:str1=str2%可以将%PATH%中的str1全部用str2替换
set a= http://blog.csdn.net/npjocj 
echo 替换前的值: "%a%" 
set var=%a:.=-% 
echo 把.换成-后为: "%var%" 

这个就将原本我的博客地址  http://blog.csdn.net/npjocj 变成了http://blog-csdn-net-npjocj 。效果等会看图哈。

3.2 字符串的截取          :%a:~[m[,n]]%
     这个有必要说明一下,方括号表示可选,%为变量标识符,a为变量名,不可少,冒号用于分隔变量名和说明部分,符号~可以简单理解为“偏移”即可,m为偏移量(缺省为0),n为截取长度(缺省为全部)
介绍几种常用的语法
%a:~0,n%  相当于函数left(a,n)  取左边n位
%a:~-m%  相当于函数right(a,m) 取右边m位
%a:~m,n% 相当于函数mid(a,m+1,n) 从m+1位开始取n位
%a:~m,-n% 相当于函数mid(a,m+1,len(a)-m-n),从m+1位开始,至倒数n+1位
%a:~m %  相当于函数mid(a,m+1,len(a)-m) 或者right(a,len(a)-m),从m+1位开始取右边全部。我用的例子还是
 
<span style="FONT-SIZE: 16px">set var1=%a:~1,4%  
set var2=%a:~-6%    
set var3=%a:~3%    
set var4=%a:~0,-6%   
set var5=%a:~2,-3% 
 
echo var1=: "%var1%"
echo var2=: "%var2%"
echo var3=: "%var3%"
echo var4=: "%var4%"
echo var5=: "%var5%</span>
<span style="FONT-SIZE: 16px">看了前面的解释你们应该能知道显示的是什么东东了吧。</span>
<span style="FONT-SIZE: 16px"></span> 
%a:~1,4%     偏移量1,从第二位开始向右取4位
%a:~-6%      偏移量负6,即倒数6位(也可理解为留下右边6位),右取全部把我的账号给截取下来了  npjocj
%a:~3%       偏移量3(也可理解为去掉左边3位),右取全部
%a:~0,-6%    偏移量0,右取长度至负6,即倒数3位
%a:~2,-3%    偏移量2,右取长度至负3,即倒数3位

<span style="FONT-SIZE: 16px">好了上脚本上大图。</span>
 <pre class="cpp" name="code">@echo off

title 这是介绍set的功能的批处理

echo 先来个基本的   set var1= value
echo let's output the var1:

set var1= value
echo %var1%

echo 加上/p也可以将命令行开关的变量设置成输入,
echo 随便也可以回顾一下if的用法

set /p var= input the  value: 
if %var%== 1 echo you had input 1 
if not %var%==1 echo 你输入的是一个非1的数

echo 来试试字符串的处理吧,先看看字符串的的替换

set a= http://blog.csdn.net/npjocj
echo 替换前的值: "%a%"
set var=%a:.=-%
echo 把.换成-后为: "%var%"

echo 要看看我是怎么截取字符的吗?


set var1=%a:~1,4%  
set var2=%a:~-6%    
set var3=%a:~3%    
set var4=%a:~0,-6%   
set var5=%a:~2,-3% 

echo 注意引号内的空格
 
echo var1=: "%var1%"
echo var2=: "%var2%"
echo var3=: "%var3%"
echo var4=: "%var4%"
echo var5=: "%var5%"

echo 再来复习一下前面的吧,我们可以这样改,
echo 记得输出时一群殴回车,不要傻傻的等http后出什么

set /p var1=%a:~1,4%  
set /p var2=%a:~-6%    
set /p var3=%a:~3%    
set /p var4=%a:~0,-6%   
set /p var5=%a:~2,-3% 

pause>nul
 
 
 
    
 
    
 
    
 
   
看看图吧
 
 
下次该讲讲if了。
 
 
 
 
 
 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值