DOS命令基础:echo、变量、函数、set、字符串截取

来源:互联网 发布:网络优化工程师前景 编辑:程序博客网 时间:2024/05/17 00:00

echo命令

echo显示当前ECHO设置状态

echo.输出空行,即相当于输入一个回车,echo后面的点要紧挨一起,中间不能有空格,后面的点可以用,:;/[ \ ]+等任一符号替代。即:下面的命令都是输出空行:

 echo. echo, echo: echo; echo/ echo\ echo[ echo] echo+

echo 文字,输出设置的文字内容


@符号隐藏后面的执行指令


函数:
函数以一个标签开始,并以goto:eof结束


函数怎么工作
调用函数的脚本将其分成两部分。
1.main script: 从第一行开始并且以 GOTO:EOF命令结束
2.函数部分:由多个函数组成,由main script调用。



编写带参数的函数
采用%1~%9来代表参数的值。而%0表示批处理文件本身,当然,如果传递的参数是“xxx”形式,而要获取的参数值为xxx,则需要使用%~1形式的参数。

:myFunctionecho it could do %~1 of things %~2goto:eof
调用时给函数传参
(参数直接放在函数后面,用空格或逗号分隔)
1.用空格或者逗号将参数分开
2.用双引号将带有空格的字符串参数括起来
call:myDosFunc 100 YeePEE call:myDosFunc 100 "for me" call:myDosFunc 100,"for me"
传参实例:
@echo offcall:myFunction 100 hellocall:myFunction 100,hellocall:myFunction 100,"hello"call:myFunction 100 "hello world"echo.&pause&goto:eof:myFunctionecho.echo it could do %1 of things %2echo it could do %~1 of things %~2goto:eof


环境变量
在dos中直接输入set会输出所有的本地环境变量

变量的设置与引用
调用函数后不像其他语言那样能有返回值,最常用的做法是先用set定义一个全局变量,然后在函数中使用该全局变量并将需要的值保存在全局变量中
直接用该全局变量。

SET命令设置变量,用%xy%引用变量xy
@echo offset var=hello worldecho %var%pause
交互式的变量(set /p
让用户自己输入变量的值,然后我们在来根据这个值来做相应操作
set /p 变量名=提示语


表达式类型的变量(set /a
set /a var=2 - 1set /a var=2 * 2set /a var=2 / 2set /a var=(1+1) + (1+1) set /a a=1+1,b=2+1,c=3+1set /a var+=1set /a var*=2
运算符
() 分组
! ~ - 一元运算符
* / % 算数运算符
+ - 算数运算符

= *= /= %= += -= 赋值
&= ^= |= <<= >>= 表达式分隔符

对于逻辑或取余操作符,使用的时候需要添加引号才能正常使用,否则报错
<< >> 逻辑移位
& 按位“与”
^ 按位“异”,非
| 按位“或”



字符串替换(=
%PATH:str1=str2%这个操作就是把变量%PATH%里的str1全部用 str2替换
实例:

@echo offset a=www.baidu.comecho 替换前的值:%a%set b=%a:.=点%echo 替换后的值:%b%pause


字符串截取(~
@echo offset a=www.baidu.comecho 替换前的值:%a%set b=%a:.=点%echo 替换后的值:%b%::从下标1对应的位置开始,截取4位字符(下标从0开始)set c=%b:~1,4%echo %c%::从第2位开始截取,截止倒数第4位set f=%b:~1,-4%echo %f%::截取3对应的下标到末尾的字符set e=%b:~3%echo %e%::截取-3对应的下标到末尾的字符,即倒数3位set d=%b:~-3%echo %d%echo.pause



截取的作用


函数的局部变量
局部变量放在SETLOCALENDLOCAL之间定义。
SETLOCAL可以很好的保护函数内与外面的变量不会冲突。即:

setlocalset var1=xxxset var2=xxxendlocal


 

原创粉丝点击