Windows:批处理脚本学习

目录

目录

一、第一个批处理文件

1. &&和 | |

2. | 和 &

二、变量 

1.传参变量%name 

2.初始化变量set命令

 3.变量的使用

4.局部变量与全局变量 

 5.使用环境变量

6.扩充变量语法 

三、注释REM和 ::

四:函数

1.定义函数

2.调用函数(传参)

3.带返回值的函数

五、运算符

1.算术运算符

2.关系运算符

3.逻辑运算符

六、IF-ELSE条件判断语句

七、循环语句

1.遍历内容(for /f 用法)

案例:输出文本内容

2.计数循环(for /l)

八、文件操作

1.创建新文件(输出) > 

2.追加写入文件 >>

九、注册表

1.查看注册表信息

2.添加注册表信息

3.删除注册表信息

 4.实践与应用

十、输入/输出

1.静默处理

十一、网络

参考资料:


        批处理脚本是以.bat结尾,写在记事本的脚本代码。 这种类型的文件通过称为命令解释器的系统文件提供的接口(有时称为 shell)来识别和执行。 在 Windows 系统上,此解释器称为 cmd.exe。

        常用命令汇总:Windows:DOS命令-BAT批处理学习_dos命令做bat-CSDN博客

一、第一个批处理文件

@echo off 
Rem This is for listing down all the files in the directory Program files 
dir "C:\Program Files" > C:\lists.txt 
echo "The program has completed"

        每个命令占一行,一行使用多个命令需要用&符号连接。

        第一个命令的目的是关闭该显示。 命令"echo off"关闭整个脚本的显示,"echo off"命令本身除外。 前面的"at"符号"@"使该命令也适用于其自身。

1. &&和 | |

语法:&&

command1 && command2 && command3 ...

只有左边的命令被执行且返回1,才会执行右边的命令 。

语法:| |

command1 || command2

         只有左边的命令被执行且返回0,才会执行右边的命令 ,也就是说如果左边的命令没执行成功才会执行右边的命令。 

2. | 和 &

语法: 管道符 |

dir | find "cache"

把左边的输出内容,作为右边的输入。

语法: 顺序执行&

command1 & command2 & command3 ...

顺序执行多条命令,不管命令是否执行成功,可以用来连接命令。

二、变量 

        批处理文件中有两种类型的变量。 一种是调用批处理文件时可以传递的参数(以%开头进行声明),另一种是通过set命令完成的。

1.传参变量%name 

        变量需要通过传参才能赋值使用,一次传参后面也可以使用,值是被写入内存,可以复用。这种变量是采用%开头+数字,数字x代表传参的对应的第x个参数位,不能是关键字或已定义的系统环境变量,比如IF、FOR、ERRORLEVEL等。

例: 

@echo off
echo %1 %2 %3
pause

2.初始化变量set命令

set /A variable-name=value

  用于设定初始化变量,不能通过传参赋值的变量。

  • variable-name:是您要设置的变量的名称。

  • value: 是需要针对变量设置的值。

  • /A : 如果值本质上是数字,则必须使用此开关

 3.变量的使用

使用变量需要将变量用两个%括起来,注意单个左百分号表示对变量传参

 例:

@echo off 
SET /A a = 5 
SET /A b = 10 
SET /A c = %a% + %b% 
echo %c%

4.局部变量与全局变量 

         默认情况下,变量对于整个命令提示符会话是全局的。 调用 SETLOCAL 命令使变量成为脚本范围的本地变量。 调用 SETLOCAL 后,任何变量分配都会在调用 ENDLOCAL、调用 EXIT 或执行到脚本中的文件末尾 (EOF) 时销毁。

 案例:

@echo off 
set globalvar = 5
SETLOCAL
set var = 13145
set /A var = %var% + 5
echo %var%
echo %globalvar%
ENDLOCAL

关于上述程序需要注意的一些关键事项。

  • "globalvar"是在全局范围内定义的,并且在整个脚本中都可用。

  • "var"变量是在本地范围内定义的,因为它包含在"SETLOCAL"和"ENDLOCAL"块之间。 因此,一旦执行"ENDLOCAL"语句,该变量就会被销毁。

 5.使用环境变量

Desktop是自定义环境变量。 

6.扩充变量语法 

        对于%~dp0第一次见,把它误认为函数的传参变量,后面才发现其实并不是函数里使用的。%0代表本身,在全局使用,则代表整个批处理文件,而在函数里,%0代表函数名。

        ~是扩展的意思,相当于把一个相对路径转换绝对路径
        %0代指批处理文件自身
        %1表示批处理文件命令行接收到的第一个参数,%2表示第二个,以此类推
        %~d0 是指批处理所在的盘符,其中d代表drive
        %~p0 是指批处理所在的目录,其中p代表path
        %~dp0 是批处理所在的盘符加路径

案例:

echo %~dp0
pause

运行结果

选项

你可能感兴趣的:(操作系统,windows)