dos命令

独自空忆成欢 提交于 2020-04-04 20:39:00

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.用双引号将带有空格的字符串参数括起来

  1. call:myDosFunc 100 YeePEE  
  2. call:myDosFunc 100 "for me"  
  3. 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

 

 

 

函数的局部变量

局部变量放在SETLOCAL与ENDLOCAL之间定义。

SETLOCAL可以很好的保护函数内与外面的变量不会冲突。即:

setlocal

set var1=xxx

set var2=xxx

endlocal

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!