原本以为昨晚能把日志都写完的,不想经理临时给任务,于是暂停了,今天一看昨天的阅读过半百了,于是今天再接再厉,把批处理的一些用法给写完。写写什么呢
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.需要提供一个交互界面 加上/Peg. 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了。