bat语法点滴批处理Set命令详解让你理解set命令.docx

上传人:b****6 文档编号:2992672 上传时间:2022-11-16 格式:DOCX 页数:11 大小:21.08KB
下载 相关 举报
bat语法点滴批处理Set命令详解让你理解set命令.docx_第1页
第1页 / 共11页
bat语法点滴批处理Set命令详解让你理解set命令.docx_第2页
第2页 / 共11页
bat语法点滴批处理Set命令详解让你理解set命令.docx_第3页
第3页 / 共11页
bat语法点滴批处理Set命令详解让你理解set命令.docx_第4页
第4页 / 共11页
bat语法点滴批处理Set命令详解让你理解set命令.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

bat语法点滴批处理Set命令详解让你理解set命令.docx

《bat语法点滴批处理Set命令详解让你理解set命令.docx》由会员分享,可在线阅读,更多相关《bat语法点滴批处理Set命令详解让你理解set命令.docx(11页珍藏版)》请在冰豆网上搜索。

bat语法点滴批处理Set命令详解让你理解set命令.docx

bat语法点滴批处理Set命令详解让你理解set命令

bat语法点滴批处理Set命令详解让你理解set命令

2011年05月06日星期五15:

30

1.转义符^

^"="

2.

另外,FOR中的变量已被增强,我们可以使用下列句法来引用变量:

  %~I    -扩充%I为删除外围"引号(有就删)

  %~fI    -扩充%I为一个完整的路径

  %~dI    -仅扩充%I为一个驱动器号

  %~pI    -仅扩充%I为一个路径

  %~nI    -仅扩充%I为一个文件名

  %~xI    -仅扩充%I为一个文件扩展名

  %~sI    -扩充%I为完整的短名路径

  %~aI    -扩充%I为文件的属性(ARSH)

  %~tI    -扩充%I为文件的日期时间(修改时间)

  %~zI    -扩充%I为文件的大小(字节计)

  %~$PATH:

I -◎变量可以是其他的,如:

WinDIR、ProgramFiles等

         在环境变量PATH指定的路径中搜索文件,

         扩充%I为找到的第一个文件的完整路径;

         若未找到文件,则扩充%I为空。

组合扩展参数效果:

%~dpI    -仅扩充%I为驱动器号和路径

%~nxI    -仅扩充%I为文件名加扩展名

%~fsI    -扩充%I为完整的短名路径(同%~sI)

%~dp$PATH:

I -搜索变量PATH中的路径,

         仅扩充%I为找到的第一个文件驱动器号和路径。

%~ftzaI   -扩充%I为类似DIR命令的输出格式

以上例子中,%I和PATH可用其他有效的变量替代。

%~百分号加波浪线用法是后面必须跟有效的FOR变量名。

推荐使用诸如%I的大写变量名,这样不仅易读且可避免混淆。

◎当然这是因人而异的。

 如果是for中的变量例如%%i可以写成%%~ni

网上看了很多的set命令,但对于set/a这类参数不是很详细,脚本之家编辑特从网上收集一些实际的例子等,结合在一起,让大家能快速的理解。

set,E文翻译过来就是“设置”的意思,相当于数学里的“令”。

如:

setX=5,就是令X=5的意思。

set的通常用法示例:

1、set显示环境变量:

如:

在命令行下输入:

set会显示当前所有的系统环境变量

setc会显示所有的以c开头或C开头的变量(也即不区分大小写);

setcom会显示所有的以com开头或COM开头的变量(不区分大小写);

2、set设置环境变量,用法示例:

set表达式,

如:

setstr=ok

就是将变量str的值设置成字符串“OK”

注意:

setstr=ok>

这个在批处理运行过程中会出错,系统会提示:

“命令语法不正确。

原因是,因为变量str中的值“ok>”的字符">"为一特殊字符,会被系统当成定向符处理,所以会运行出错,那如果确实要设置这样的变量str,值为"ok>"怎么办呢?

解决办法有二:

将特殊字符转义,转义方法在该特殊字符前加一个“^”,如:

setstr=ok^>(这种方法比较少用,因为没有多少应用价值)

常见的解决办法,在set后面将整个表达式用引号括起来,如:

set"str=>"

3、带参数/a的set数值计算

set的/A参数就是让SET可以支持数学符号进行加减等一些数学运算!

支持的数学运算包含(优先权递减):

()-分组

!

~--一元运算符

*/%-算数运算符

+--算数运算符

<<>>-逻辑移位

&-按位“与”

^-按位“异”

|-按位“或”

=*=/=%=+=-=-赋值

&=^=|=<<=>>=

-表达式分隔符

用法示例:

set/anum=2*10,这样变量num的值将变为:

20

复制代码代码如下:

set/avar=2-1结果是多少呢?

如果你看不到结果就echo%var%.....

set/avar=2*2乘法运算

set/avar=2/2除法运算

set/avar=(1+1)+(1+1)结果等于4看得懂吧!

set/aa=1+1,b=2+1,c=3+1运行后会显示一个4,但我们用

echo%a%%b%%c%后看结果,会发现其他数学运算也有效果!

这就是"斗"号的

作用!

有时候我们需要直接在原变量进行加减操作就可以用这种语法

set/avar+=1这样的语法对应原始语法就是set/avar=%var%+1

都是一样的结果。

对于"逻辑或取余操作符",我们需要把他们用双引号引起来,看例子

复制代码代码如下:

set/avar=1"&"1这样结果就显示出来了,其他逻辑或取余操作符用法

set/avar=1"+"1异运算

set/avar=1"%"1取模运算

set/avar=2"<<"2次方运算

set/avar=4">>"2这个不太记得数学里的叫法....

这些符号也可以用&=^=|=<<=>>=这样的简单用法如

set/avar"&="1等于set/avar=%var%"&"1注意引号

4、带参数/p的set等待用户输入

windows2000和windows是没有choice这个命令,choice的等待用户输入功能就要通过set/p来实现

演示如下:

复制代码代码如下:

@echooff

set/pstr=请输入你想输入的字符:

echo你输入的字符串为:

%str%

pause>nul

set/p的特殊应用(set/p=

复制代码代码如下:

@echooff

for/l%%iin(1170)do(

set/p=O

for/l%%ain(1150)dover>nul

pause>nul

注:

代码中用到了一句for/l%%ain(1150)dover>nul,它的目的是利用for循环运行某一命令来达到延时的目的。

5、利用set截取字符保存下面的代码为test.bat运行查看即可。

复制代码代码如下:

@echooff&color1f&remnum=15nums=30

modecon:

cols=80lines=35

set"var=90"

set"num="

set"nums="

rem第一屏舍弃

cls&echo第一屏舍弃

echo\&echo%num%var=%var%&echo\

for/l%%iin(113)docall:

dan%%i

echo\

for/l%%iin(011)docall:

yi%%i

echo\

for/l%%iin(012)docall:

_yi%%i

echo~波浪号后面的数字:

为正数表示舍弃变量的前位;

echo,逗号后面的数字为正数表示取变量的舍弃以后的前几位;

echo,逗号后面为负数表示舍弃变量的后几位

echo\&echo\&pause&color1e

rem第二屏取

cls&echo第二屏取

echo\&echo%num%var=%var%&echo\

for/l%%iin(-1-1-3)docall:

dan%%i

echo\

for/l%%iin(-4-1-6)docall:

er%%i

echo\

call:

_er-8

echo~波浪号后面直接跟负数表示取变量的后几位

echo,逗号后面的数字为正数表示取变量的舍弃以后的前几位;

echo,逗号后面为负数表示舍弃变量的后几位

echo\&echo\&pause&color1f

rem第三屏替换删除

cls&echo第三屏替换删除

set"var=abc:

\123\ef:

g\123\456"hij"789"klm\"

echo\&echo%num%var=%var%

echo\

call:

san

echo=号左边为要替换掉的字符,右边为需替换来的字符

echo=号左边要替换掉的字符前面加个*号,代表第一次出现的字符及其前面的所有字符

echo\

echo=========演示完毕=========按任意键退出==========

pause>nul

exit

:

dan

setshu=%1

if%shu%lss0(setaa=取&setji=最后)elsesetaa=舍弃&setji=前

if"%shu:

~0,1%"=="-"setshu=%shu:

~1%

setstr1=%%var:

~%1%%%num%

setstr2=%aa%var的%ji%%shu%位%nums%

callsetstr3=%%var:

~%1%%%num%

callecho%%str1:

~0,15%%%%str2:

~0,30%%%%str3:

~0,15%%

goto:

eof

:

yi

setshu=%1

if%shu%lss0(setaa=取&setji=最后)elsesetaa=舍弃&setji=前

for/l%%iin(113)do(

setstr1=%%var:

~%1,%%i%%%num%

setstr2=%aa%var的%ji%%shu%位之后取%%i位%nums%

callsetstr3=%%var:

~%1,%%i%%%num%

callecho%%str1:

~0,15%%%%str2:

~0,26%%%%str3:

~0,15%%

if%%i==3echo\

goto:

eof

:

_yi

for/l%%iin(-1-1-3)do(

setstr1=%%var:

~%1,%%i%%%num%

setstr2=舍弃var的前%1位和%%i位%nums%

callsetstr3=%%var:

~%1,%%i%%%num%

callecho%%str1:

~0,15%%%%str2:

~0,28%%%%str3:

~0,15%%

if%%i==-3echo\

goto:

eof

:

er

setsss=%1

setsss=%sss:

~1%

for/l%%iin(113)do(

setstr1=%%var:

~%1,%%i%%%num%

setstr2=从var的倒数%sss%位开始取%%i位%nums%

callsetstr3=%%var:

~%1,%%i%%%num%

callecho%%str1:

~0,15%%%%

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1