您的位置:首页 > 其它

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

2017-05-25 23:53 323 查看
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形式的参数。

:myFunction
echo it could do %~1 of things %~2
goto:eof
调用时给函数传参

(参数直接放在函数后面,用空格或逗号分隔)

1.用空格或者逗号将参数分开

2.用双引号将带有空格的字符串参数括起来
call:myDosFunc 100 YeePEE
call:myDosFunc 100 "for me"
call:myDosFunc 100,"for me"
传参实例:
@echo off
call:myFunction 100 hello
call:myFunction 100,hello
call:myFunction 100,"hello"
call:myFunction 100 "hello world"
echo.&pause&goto:eof

:myFunction
echo.
echo it could do %1 of things %2
echo it could do %~1 of things %~2
goto:eof



环境变量

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

变量的设置与引用

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

直接用该全局变量。

SET命令设置变量,用%xy%引用变量xy
@echo off
set var=hello world
echo %var%
pause
交互式的变量(set /p)

让用户自己输入变量的值,然后我们在来根据这个值来做相应操作
set /p 变量名=提示语



表达式类型的变量(set /a)
set /a var=2 - 1
set /a var=2 * 2
set /a var=2 / 2
set /a var=(1+1) + (1+1)
set /a a=1+1,b=2+1,c=3+1
set /a var+=1
set /a var*=2
运算符

() 分组

! ~ - 一元运算符

* / % 算数运算符

+ - 算数运算符

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

&= ^= |= <<= >>= 表达式分隔符

对于逻辑或取余操作符,使用的时候需要添加引号才能正常使用,否则报错

<< >> 逻辑移位

& 按位“与”

^ 按位“异”,非

| 按位“或”



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

实例:

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



字符串截取(~)
@echo off
set a=www.baidu.com
echo 替换前的值:%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可以很好的保护函数内与外面的变量不会冲突。即:

setlocal
set var1=xxx
set var2=xxx
endlocal


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐