想学网站建设优化去哪,哪里做网站最便宜,wordpress 链接按钮,资源软件下载网站免费目录
一、第一个批处理文件
1. 和 | |
2. | 和
二、变量
1.传参变量%name
2.初始化变量set命令 3.变量的使用
4.局部变量与全局变量 5.使用环境变量
6.扩充变量语法
三、注释REM和 #xff1a;#xff1a;
四#xff1a;函数
1.定义函数
2.…目录
一、第一个批处理文件
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.删除注册表信息
十、输入/输出
1.静默处理
十一、网络
参考资料 批处理脚本是以.bat结尾写在记事本的脚本代码。 这种类型的文件通过称为命令解释器的系统文件提供的接口有时称为 shell来识别和执行。 在 Windows 系统上此解释器称为 cmd.exe。 常用命令汇总WindowsDOS命令-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 变量需要通过传参才能赋值使用一次传参后面也可以使用值是被写入内存可以复用。这种变量是采用%开头变量名变量名需要符合一定的规范不能是关键字或已定义的系统环境变量比如IF、FOR、ERRORLEVEL等。 echo off
echo %1 %2 %3
pause2.初始化变量set命令 用于设定初始化变量不能通过传参赋值的变量。 set /A variable-namevalue 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运行结果
选项解释%~0文件本身%~d0文件所在驱动号%~p0文件所在路径仅路径少了驱动器号%~n0文件名%~x0文件拓展名%~s0用~省略的部分路径%~a0文件属性%~t0文件日期%~z0文件大小 可组合使用就比如%~dp0。 三、注释REM和 注释方法有两种一种 是REM的注释方法一种是两个分号 : : 的注释方法注释的方法更为推荐执行速度更快。 四函数
1.定义函数
语法 以单分号开头的同一个文件里可以不使用EXIT结束标志以回车空行做分界线。 :function_name
Do_something
EXIT /B 0
::/B可以在退出时不显示信息输出更加整洁
案例
echo off
echo %1 %2 %3
echo %2%
call :eejdjdjdj
pause:eejdjdjdjecho helloecho wwwww
2.调用函数传参
语法 想要其能够传参到函数内部就需要使用传参变量%~参数位置编号这是给函数传参的变量需要和前面的传参变量作出区别。 Call :function_name parameter1, parameter2… parametern
案例
echo off
SETLOCAL
CALL :Display 5 , 10
EXIT /B %ERRORLEVEL%
:Display
echo The value of parameter 1 is %~1
echo The value of parameter 2 is %~23.带返回值的函数
语法 使用 set 命令和波形符 (~) 字符以及参数的位置编号在函数中设置返回值将返回值赋值给value1, value2… valuen。 Call :function_name value1, value2… valuen
案例
echo off
SETLOCAL
CALL :SetValue value1,value2
echo %value1%
echo %value2%:SetValue
set %~1 5
set %~2 10五、运算符
1.算术运算符 2.关系运算符 3.逻辑运算符 六、IF-ELSE条件判断语句 注意 ELSE分别和两个括号需要有空格GTR也要有空格。 示例
echo off
set /A a1
set /A b1
echo %a%
IF (%a% GTR %b%) (echo yes
) else (echo no
)
pause
七、循环语句
语法 在cmd窗口中for之后的形式变量I必须使用单百分号引用即%i而在批处理文件中引用形式变量i必须使用双百分号即%%i。 FOR %%variable IN (set) DO ( command [command-parameters] )
echo off
set list1 2 3 4
(for %%a in (%list%) do ( echo %%a
))
案例
echo off
for /f delims %%i in (test.txt) do echo %%i
pause
echo off
for %%I in (bbs.bathome.net) do echo %%I
pause
1.遍历内容for /f 用法 for /f 用法具有多种形式 1、for /f %%i in (文件名) do (……) 2、for /f %%i in (命令语句) do (……) 3、for /f %%i in (字符串) do (……) 4、for /f usebackq %%i in (文件名) do (……) 5、for /f usebackq %%i in (命令语句) do (……) 6、for /f usebackq %%i in (字符串) do (……) 总而言之没使用增强型参数usebackq文件不需要符号括起来字符串要双引号命令要单引号。如果使用则文件名需要双引号括起来命令需要反引号而字符串需要单引号。增强型参数的作用是处理文件名内含有特殊符号的情况。 案例输出文本内容
echo off
for /f %%i in (test.txt) do echo %%i
pause
案例 切分字符串delims和定点提取tokens 切分delims等号后面为分界符定点选取tokens等号后面为数字可选取多个数字代表第几个字段由delims切割的 单个
echo off
for /f delims, token1 %%i in (hello.txt) do echo %%i
pause 多个 如果 tokens 后面指定了多个数字如果形式变量为%%i那么第一个数字指代的内容用第一个形式变量%%i来接收第二个数字指代的内容用第二个形式变量%%j来接收第三个数字指代的内容用第三个形式变量%%k来接收……第N个数字指代的内容用第N个形式变量来接收其中形式变量遵循字母的排序第N个形式变量具体是什么符号由第一个形式变量来决定如果第一个形式变量是%%i那么第二个形式变量就是%%j如果第一个形式变量用的是%%x那么第二个 形式变量就是%%y。 echo off
for /f delims tokens2,5 %%i in (test.txt) do echo %%i %%j
pause
案例跳行 skipn n表示跳过n行 echo off
for /f skip2 %%i in (test.txt) do echo %%i
pause 案例忽略以指定字符打头的行eol 等号后面只能接一个字符 echo off
for /f eol; %%i in (test.txt) do echo %%i
pause
2.计数循环(for /l)
语法
for /l %%i in (x,y,z) do (……) 在这个语句中x、y和z都只能取整数正负皆可x指代起始值y指代步长z为终止值具体含义为从x开始计数以y为步长直至最接近 z的那个整数值为止这之间有多少个数do后的语句就执行多少次。 八、文件操作
1.创建新文件(输出) 符号的作用是存在即覆盖不存在即新建也可以NUL来丢弃命令的输出。 IF NOT EXIST %ProgramW6432% (ECHO 此为64位版 PING 127.1 /n 2 NULEXIT)
2.追加写入文件 符号的作用是存在即行末追加写入不存在即新建。 案例
echo offecho %1 %2 %3 h.txt
echo %2% helle.txt
call :eejdjdjdj
pause:eejdjdjdjecho hello helle.txtecho wwwww
九、注册表
1.查看注册表信息
语法一查询所有的子项和值
reg query HKCU\Software\SweetScape\010 Editor /s
语法二根据项值名称进行查询
REG QUERY KeyName /v /f Data /v 指定要搜索的值名称。/f 指定搜索数据的模式。Data可用正则表达式进行字符串匹配。 案例
reg query HKCU\Software\SweetScape\010 Editor /v /f W*
语法三根据项值的数据类型进行查询
REG QUERY KeyName /t Type / t 指定要查询的类型它后面跟的值必须是下面的其中之一 REG_SZREG_MULTI_SZREG_DWORD_BIG_ENDIANREG_DWORDREG_BINARYREG_DWORD_LITTLE_ENDIANREG_LINKREG_FULL_RESOURCE_DESCRIPTORREG_EXPAND_SZ 案例
reg query HKCU\Software\SweetScape\010 Editor /t REG_SZ
语法四根据项值的数据进行查询
REG QUERY KeyName /d /f Data /d 指定要搜索的数据内容项值的数据。/f 指定搜索数据的模式。Data可用正则表达式进行字符串匹配。 2.添加注册表信息
语法
reg add keyname [/v valuename | /ve] [/t datatype] [/d data] [/f] 与查询其实差不多选项信息如下 /v : 添加项值的名称/ t : 添加项值的类型/d : 添加项值的数据/ f : 在不提示确认的情况下添加项值 案例要将名为 DATA 的值、类型为 REG_BINARY 且数据为 fe340ead 的注册表项添加到 HKLM\Software\MyCo
reg add HKLM\Software\MyCo /v Data /t REG_BINARY /d fe340ead
案例要将名为 Path、类型为 REG_EXPAND_SZ 且数据为 %systemroot% 的扩展注册表项添加到 HKLM\Software\MyCo
reg add HKLM\Software\MyCo /v Path /t REG_EXPAND_SZ /d ^%systemroot^% 对于 REG_EXPAND_SZ 项类型请在 /d 参数内将插入符号 (^) 与 % 结合使用。 3.删除注册表信息
语法
reg delete keyname [/v valuename] [/f] 有选用/v表示是根据项值的名称删除项值没有选用表示删除的是项而/f 的作用就是静默处理不提示确认的情况直接删除。 案例删除名为 ZODIAC 的计算机上 HKLM\Software\MyCo 下的注册表值 MTU
reg delete \\ZODIAC\HKLM\Software\MyCo /v MTU
案例要删除注册表项 Timeout 及其所有子项和值
reg delete HKLM\Software\MyCo\MyApp\Timeout
十、输入/输出 键盘输入、在屏幕上打印文本以及在屏幕上打印错误共有三个通用文件。 标准输入文件称为 stdin包含程序/脚本的输入。 标准输出文件称为stdout用于写入输出以在屏幕上显示。 标准错误文件称为 stderr其包含要在屏幕上显示的所有错误消息。 这三个标准文件中的每一个也称为标准流均使用数字 0、1 和 2 进行引用。Stdin 是文件 0stdout 是文件 1stderr 是文件 2。 1.静默处理
REG QUERY HKU\S-1-5-19NUL 21 REG QUERY HKU\S-1-5-19NUL这句话是将标准输出流1的输出数据进行丢弃而 21是将标准错误流重定向到标准输出流的地址目的为了将两个流合并从而实现一起丢弃实现静默化处理。 十一、网络 参考资料
批处理脚本教程 (w3ccoo.com)
reg add | Microsoft Learn
DOS批处理中%~dp0等扩充变量语法详解 - NAVYSUMMER - 博客园 (cnblogs.com)