批处理写法
- 格式:docx
- 大小:30.88 KB
- 文档页数:19
基础部分:======================================================================一、基础语法:1.批处理文件是一个“.bat”结尾的文本文件,这个文件的每一行都是一条DOS命令。
可以使用任何文本文件编辑工具创建和修改。
2.批处理是一种简单的程序,可以用 if 和 goto 来控制流程,也可以使用 for 循环。
3.批处理的编程能力远不如C语言等编程语言,也十分不规范。
4.每个编写好的批处理文件都相当于一个DOS的外部命令,把它所在的目录放到DOS搜索路径(path)中,即可在任意位置运行。
5.C:\AUTOEXEC.BAT 是每次系统启动时都会自动运行的,可以将每次启动时都要运行的命令放入该文件中。
6.大小写不敏感(命令符忽略大小写)7.批处理的文件扩展名为 .bat 或 .cmd。
8.在命令提示下键入批处理文件的名称,或者双击该批处理文件,系统就会调用Cmd.exe来运行该文件。
二、参数:1) 系统参数%SystemRoot% === C:\WINDOWS (%windir% 同样)%ProgramFiles% === C:\Program Files%USERPROFILE% === C:\Documents and Settings\Administrator (子目录有“桌面”,“开始菜单”,“收藏夹”等)%APPDATA% === C:\Documents and Settings\Administrator\Application Data%TEMP% === C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp (%TEM% 同样)%APPDATA% === C:\Documents and Settings\Administrator\Application Data%OS% === Windows_NT (系统)%Path% === %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem (原本的设置) %HOMEDRIVE% === C: (系统盘)%HOMEPATH% === \Documents and Settings\Administrator:: 枚举当前的环境变量setlocal enabledelayedexpansionFOR /F "usebackq delims==" %%i IN (`set`) DO @echo %%i !%%i!2) 传递参数给批处理文件%[1-9]表示参数,参数是指在运行批处理文件时在文件名后加的以空格(或者Tab)分隔的字符串。
win11bat if写法
在Windows11的批处理(bat)脚本中,if条件判断语句的常见写法如下:
```bash
@echo off
set/p userinput=请输入内容:
if"%userinput%"=="内容"(
echo匹配成功!
)else(
echo匹配失败!
)
pause
```
这个脚本会提示用户输入内容,然后使用if语句判断输入的内容是否等于指定的内容。
如果条件为真,则输出“匹配成功!”,否则输出“匹配失败!”。
最后使用pause命令暂停脚本执行,以便查看结果。
请注意,if语句中的条件表达式两侧必须有空格,比较表达式和括号之间也必须有空格。
此外,在比较字符串时,会区分大小写,如果要忽略大小写,可以在比较字符串时使用参数"/I(i)"。
例如:
```bash
if/I"%userinput%"=="内容"( echo匹配成功!
)else(
echo匹配失败!
)
```。
易语言写批处理批处理是一种在操作系统中用于执行一系列命令或脚本的技术。
在易语言中实现批处理,可以通过编写一段代码来执行多条命令,从而实现自动化处理任务。
编写一个简单的批处理程序,可以通过以下步骤进行:步骤一:创建一个新的易语言项目打开易语言IDE,点击“新建项目”创建一个新的项目。
步骤二:编写批处理代码在项目中,可以使用EasyCode模块编写批处理代码。
具体的代码如下:easy模块EasyCode' 批处理代码子程序测试批处理代码()' 执行命令' 命令一执行命令("echo Hello World!")' 命令二执行命令("dir")' 命令三执行命令("ping结束子程序' 执行命令子程序执行命令(命令行)' 创建一个进程对象进程对象= 创建进程对象()' 设置需要执行的命令进程对象.shellexecute(0, "cmd.exe", "/c " + 命令行, 0, 1)' 等待命令执行完成进程对象.等待退出()结束子程序指定导出EasyCode.测试批处理代码步骤三:运行批处理程序点击运行按钮或者按下F5键来运行批处理程序。
程序会依次执行代码中的命令,并将结果输出到控制台窗口。
批处理程序可以执行各种命令,例如创建文件、修改文件、删除文件等。
在这个例子中,我们展示了如何执行三个常见的命令:打印Hello World、显示当前目录内容和ping百度网站。
批处理还可以结合条件判断和循环语句实现更复杂的自动化任务。
例如,可以使用条件判断语句来判断文件是否存在,然后执行相应的操作;可以使用循环语句来重复执行一段代码,直到达到指定条件。
总之,易语言提供了编写批处理程序的功能,可以方便地实现自动化处理任务。
通过编写批处理程序,您可以提高工作效率,减少重复劳动。
批处理文件教程第一章.理解批处理批处理,也称为批处理脚本,英文译为BATCH,批处理文件后缀BAT就取的前三个字母。
它的构成没有固定格式,只要遵守以下这条就ok了:每一行可视为一个命令,每个命令里可以含多条子命令,从第一行开场执行,直到最后一行完毕,它运行的平台是DOS。
批处理有一个很鲜明的特点:使用方便、灵敏,功能强大,自动化程度高。
我不想让自己写的教程枯燥无味,因为牵缠到代码〔批处理的内容算是代码吧?〕的问题本来就是枯燥的,很少有人能面对满屏幕的代码而静下心来。
所以我会用很多简单实用的例子让读这篇教程的朋友去体会批处理的那四射的魅力,感受它那古灵精怪的性格,不知不觉中爱上批处理〔晕,怎么又是爱?到底批处理和爱有什么关系?答案:没有!〕。
再说句“闲话〞:要学好批处理,DOS根底一定要牢!当然脑子灵敏也是很重要的一方面。
第二章.批处理概述:一个批处理文件只不过是一些DOS命令的组合。
它是执行一系列常用命令非常有用的方法。
除了标准的DOS命令之外,批处理文件可以包括一系列特殊的命令,这些命令允许你用一些可交换的参数编写简单程序。
启动批处理文件后,可交换参数,也就是0到9之间的一个整数前面加上一个%符号,将被你在命令行键入的自变量所置换。
其中最普遍使用的文件是AUTOEXEC.BAT文件,无论什么时候启动或重启动系统,DOS都将自动执行它。
此文件允许你做如下事情:输入当前日期、设置命令途径与系统提示符及装载程序,而不需分别键入每个命令。
AUTOEXEC.BAT文件必须位于启动DOS盘的根目录下。
所有批处理文件必须以.BAT作为扩展名,不过当你运行该文件时并不需要在命令行键入扩展名。
要执行批处理文件,只需简单地在系统提示符下键入其文件名即可,DOS将按顺序执行批处理文件所包含的命令。
第三章.批处理的入门学习批处理!包你学会〔一〕这是一篇技术教程,真心诚意会用很简单的文字表达清楚自己的意思,只要你识字就能看懂,就能学到知识。
批处理BAT脚本中set命令的使⽤详解(批处理之家Batcher)⽬录⼀、使⽤ set 命令进⾏赋值1、等号两边不要有空格2、变量值包含特殊字符需⽤双引号3、避免使⽤系统环境变量同名的⾃定义变量4、语法可⾏但不推荐使⽤⼆、使⽤ set /p 命令读取输⼊三、使⽤ set /a 命令进⾏数学运算(1)四、使⽤ set /a 命令进⾏数学运算(2)五、使⽤ set 命令进⾏字符串截取六、使⽤ set 命令进⾏字符串替换七、set命令知识点(1)把命令结果赋值给变量⼋、set命令知识点(2)显⽰以某字符开头的变量⼀、使⽤ set 命令进⾏赋值SET [variable=[string]]1、等号两边不要有空格正确写法C:\>set str=ScriptHomeC:\>echo %str%ScriptHome错误写法C:\>set str = ScriptHomeC:\>echo %str%%str%2、变量值包含特殊字符需⽤双引号正确写法C:\>set "str=Bat&Home"C:\>echo "%str%""Bat&Home"错误写法C:\>set str=Bat&Home'Home' 不是内部或外部命令,也不是可运⾏的程序或批处理⽂件。
C:\>echo "%str%""Bat"变量值设置为空可以清空变量值,实现变量初始化。
3、避免使⽤系统环境变量同名的⾃定义变量例如:path , date , errorlevel 等4、语法可⾏但不推荐使⽤使⽤连等把多个变量赋值成数字set /a x=y=100逗号分隔把多个变量赋值成数字set /a x=1,y=2上⾯是dos界⾯下的写法,下⾯是批处理中的写法,主意是变量⽰例1:显⽰所有的变量的值@echo offsetpause⽰例2:@echo offset var=我是值echo %var%pause请看 set var=我是值 ,这就是BAT直接在批处理中设置变量的⽅法!set 是命令 var是变量名 =号右边的"我是值"是变量的值在批处理中我们要引⽤这个变量就把var变量名⽤两个%(百分号)扩起来,如%var%⼆、使⽤ set /p 命令读取输⼊交互获取⽤户输⼊@echo offset /p input=请输⼊⼀个字符串:echo,%input%pause读取⽂件的第⼀⾏内容C:\>echo BatHome>1.txtC:\>set /p input=<"1.txt"C:\>echo %input%BatHome输出字符串之后不产⽣换⾏@echo offfor %%i in (bat home) do (echo,%%i)pause输出bathome请按任意键继续. . .@echo offfor %%i in (bat home) do (set /p =%%i<nul)pause输出bathome请按任意键继续. . .批处理光标回退(⾮cls清屏)动画效果演⽰@echo offecho set /p =光标回退(⾮cls清屏)动画效果演⽰:<nulfor /l %%i in (1,1,10) do (set /p =%%i<nulset /p =<nulping -n 2 127.1 >nul)echo,pause三、使⽤ set /a 命令进⾏数学运算(1)等号右侧的变量可以省略百分号C:\>set x=1C:\>set y=2C:\>set /a n=%x%+%y%3C:\>set x=1C:\>set y=2C:\>set /a n=x+y3⼋进制和⼗六进制转换成⼗进制很简单C:\>set /a 01210C:\>set /a 0xA10BAT⽂件⾥⾯进⾏“取余”操作的时候需要使⽤两个百分号@echo offset /a n=3%%2echo %n%pause逻辑运算的特殊字符需要使⽤双引号@echo offset /a "m=1<<10"set /a n=1"<<"10echo %m% %n%pause四、使⽤ set /a 命令进⾏数学运算(2)不⽀持直接计算超⼤数(例如磁盘空间的计算)C:\>set /a n=2147483646+12147483647C:\>set /a n=2147483647+1-2147483648C:\>set /a n=2147483648+1⽆效数字。
在批处理脚本中,REG命令用于与Windows注册表进行交互。
以下是使用REG命令的一些常见用法示例:
1.添加键值对:
上述命令将在HKEY_CURRENT_USER\Software\MyApp键下添加一个名为"Setting"的字符串值,并将其值设置为"Value"。
2.删除键值对:
上述命令将删除HKEY_CURRENT_USER\Software\MyApp键下的"Setting"值。
3.查询键值对:
上述命令将查询HKEY_CURRENT_USER\Software\MyApp键下的"Setting"值的详细信息。
4.导出注册表:
上述命令将导出HKEY_CURRENT_USER\Software\MyApp键下的内容到指定的注册表文件(例如"C:\path\to\file.reg")。
这只是REG命令的一些基本用法示例,还有其他选项和参数可用于更复杂的注册表操作。
请注意,修改注册表需要谨慎操作,并确保您了解所做的更改可能对系统造成的影响。
在进行任何注册表更改之前,最好备份注册表或创建系统还原点。
教你如何自己编写BAT批处理文件2教你如何自己编写BAT批处理文件22.添加一行命令指示批处理文件的类型。
3.添加其他的命令行命令。
-在后续行添加各种命令行命令,每个命令占一行。
4. 保存文件并将文件扩展名改为 `.bat`。
- 在文件保存对话框中选择一个合适的保存位置,然后将文件名输入为 `filename.bat`,其中 `filename` 是你自己设置的文件名。
1.示例1:输出文本内容```echo "Hello, world!"pause```- `echo "Hello, world!"` 命令输出引号内的文本。
- `pause` 命令使得命令行窗口暂停运行,直到用户按下任意键。
2.示例2:运行其他程序```start "C:\Program Files\Internet Explorer\iexplore.exe"```- `start "C:\Program Files\Internet Explorer\iexplore.exe"` 命令运行指定路径的程序,在本例中是 Internet Explorer 浏览器。
3.示例3:复制文件```copy "C:\path\to\source\file.txt" "C:\path\to\destination\"```- `copy "C:\path\to\source\file.txt""C:\path\to\destination\"` 命令复制指定路径的文件到另一个路径。
4.示例4:删除文件```del "C:\path\to\file.txt"```- `del "C:\path\to\file.txt"` 命令删除指定路径的文件。
windows批量处理命令写法在Windows中,你可以使用批处理脚本(以.bat为扩展名)来进行批量处理。
以下是一些常用的Windows批处理命令和写法:1. 循环结构:- for命令:用于循环处理文件或目录。
```batchfor %%i in (*.txt) do (echo %%iREM 其他处理命令)```这个例子遍历当前目录下的所有txt文件,并对每个文件执行处理命令。
- for /f命令:从文件内容中逐行读取数据。
```batchfor /f "tokens=1,2 delims=," %%a in (input.txt) do (echo %%a - %%bREM 其他处理命令)```这个例子从`input.txt`文件中读取以逗号分隔的两列数据,并对每一行执行处理命令。
2. 条件语句:- if命令:用于条件判断。
```batchif exist file.txt (echo 文件存在) else (echo 文件不存在)```这个例子检查文件`file.txt`是否存在,并根据结果执行不同的处理命令。
3. 变量和参数:- set命令:用于设置和操作环境变量。
```batchset VAR=valueecho %VAR%```这个例子设置一个变量VAR的值,并在后续代码中使用。
- %1, %2, ... %n:用于获取脚本参数。
```batchecho 第一个参数:%1echo 第二个参数:%2```这个例子显示脚本接收到的第一个和第二个参数。
4. 文件和文件夹操作:- copy命令:用于复制文件。
```batchcopy source.txt destination.txt```- move命令:用于移动文件。
```batchmove file.txt new\folder\```- del命令:用于删除文件。
```batchdel file.txt```这只是一些基础的示例,实际情况可能会更复杂。
基础部分:======================================================================一、基础语法:1.批处理文件是一个“.bat”结尾的文本文件,这个文件的每一行都是一条DOS命令。
可以使用任何文本文件编辑工具创建和修改。
2.批处理是一种简单的程序,可以用 if 和 goto 来控制流程,也可以使用 for 循环。
3.批处理的编程能力远不如C语言等编程语言,也十分不规范。
4.每个编写好的批处理文件都相当于一个DOS的外部命令,把它所在的目录放到DOS搜索路径(path)中,即可在任意位置运行。
5.C:\AUTOEXEC.BAT 是每次系统启动时都会自动运行的,可以将每次启动时都要运行的命令放入该文件中。
6.大小写不敏感(命令符忽略大小写)7.批处理的文件扩展名为 .bat 或 .cmd。
8.在命令提示下键入批处理文件的名称,或者双击该批处理文件,系统就会调用Cmd.exe来运行该文件。
二、参数:1) 系统参数%SystemRoot% === C:\WINDOWS (%windir% 同样)%ProgramFiles% === C:\Program Files%USERPROFILE% === C:\Documents and Settings\Administrator (子目录有“桌面”,“开始菜单”,“收藏夹”等)%APPDATA% === C:\Documents and Settings\Administrator\Application Data%TEMP% === C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp (%TEM% 同样)%APPDATA% === C:\Documents and Settings\Administrator\Application Data%OS% === Windows_NT (系统)%Path% === %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem (原本的设置) %HOMEDRIVE% === C: (系统盘)%HOMEPATH% === \Documents and Settings\Administrator:: 枚举当前的环境变量setlocal enabledelayedexpansionFOR /F "usebackq delims==" %%i IN (`set`) DO @echo %%i !%%i!2) 传递参数给批处理文件%[1-9]表示参数,参数是指在运行批处理文件时在文件名后加的以空格(或者Tab)分隔的字符串。
变量可以从%0到%9,%0表示批处理命令本身,其它参数字符串用 %1 到 %9 顺序表示。
Sample:call test2.bat "hello" "haha" (执行同目录下的“test2.bat”文件,并输入两个参数)在“test2.bat”文件里写:echo %1 (打印: "hello")echo %2 (打印: "haha")echo %0 (打印: test2.bat)echo %19 (打印: "hello"9)三、批处理基本命令0. help 命令/? 命令语法:命令 /?可显示此命令的帮助信息Sample: type /? >>tmp.txt (把 type 命令的帮助信息写入到tmp.txt文件里)Sample: help type (显示跟“type /?”一样)1.Echo 命令语法: echo [{on|off}] [message]ECHO [ON | OFF] 打开回显或关闭回显功能。
ECHO 显示当前回显设置。
ECHO [message] 显示信息。
echo off 表示在此语句后所有运行的命令都不显示命令行本身;默认是on,on时会显示如: C:\文件夹路径>命令行。
在实际应用中我们会把这条命令和重定向符号( 也称为管道符号,一般用 > >> ^ )结合来实现输入一些命令到特定格式的文件中。
Sample: echo offSample: echo hello world (显示出“hello world”)Sample: echo Windows Registry Editor Version 5.00 > c:\setupreg.reg (此前还没有setupreg.reg 这个文件)Sample: echo "SourcePath"="D:\\Win2003\\" >> c:\setupreg.reg (追加内容进 setupreg.reg 这个文件)2.@ 命令表示不显示@后面的命令,(在入侵过程中自然不能让对方看到你使用的命令啦)@ 与 echo off 相象,但它是加在每个命令行的最前面,表示运行时不显示这一行的命令行(只能影响当前行)。
Sample: @echo off (此语句常用于开头,表示不显示所有的命令行信息,包括此句) Sample: @echo please wait a minite...Sample: @format X: /q/u/autoset(format 这个命令是不可以使用/y这个参数的,可喜的是微软留了个autoset这个参数给我们,效果和/y是一样的。
)3.Goto 命令语法:goto label (label是参数,指定所要转向的批处理程序中的行。
)指定跳转到标签行,找到标签行后,程序将处理从下一行开始的命令。
label标签的名字可以随便起,但是最好是有意义的,字母前必须加个冒号“:”来表示这个字母是标签。
goto命令就是根据这个冒号来寻找下一步跳到到那里。
经常与 if 配合使用,根据不同的条件来执行不同的命令组。
例题见“5.Pause 命令”4.Rem 命令语法:Rem Message...(小技巧:用::代替rem)注释命令,在C语言中相当与/*...*/,它并不会被执行,只是起一个注释的作用,便于别人阅读和自己日后修改。
Sample:@Rem Here is the description.5.Pause 命令会暂停批处理的执行并在屏幕上显示Press any key to continue...的提示,等待用户按任意键后继续Sample:@echo off:begincopy a:*.* d:\backecho Please put a new disk into driver Apausegoto begin在这个例子中,驱动器 A 中磁盘上的所有文件均复制到d:\back中。
显示的信息提示您将另一张磁盘放入驱动器 A 时,pause 命令会使程序挂起,以便您更换磁盘,然后按任意键再次复制。
6.Call 命令语法: call [[Drive:][Path] FileName [BatchParameters]] [:label [arguments]]参数: [Drive:][Path] FileName 指定要调用的批处理程序的位置和名称。
filename 参数必须具有 .bat 或 .cmd 扩展名。
调用另一个批处理程序,并且不终止父批处理程序。
如果不用call而直接调用别的批处理文件,那么执行完那个批处理文件后将无法返回当前文件并执行当前文件的后续命令。
call 命令接受用作调用目标的标签。
如果在脚本或批处理文件外使用 Call,它将不会在命令行起作用。
Sample:call="%cd%\test2.bat" haha kkk aaa (调用指定目录下的 test2.bat,且输入3个参数给他)Sample:call test2.bat arg1 arg2 (调用同目录下的 test2.bat,且输入2个参数给他) 注:可以调用自身(死循环、递归)7.start 命令调用外部程序,所有的 DOS命令和命令行程序都可以由 start命令来调用。
入侵常用参数:MIN 开始时窗口最小化SEPARATE 在分开的空间内开始 16 位 Windows 程序HIGH 在 HIGH 优先级类别开始应用程序REALTIME 在 REALTIME 优先级类别开始应用程序WAIT 启动应用程序并等候它结束parameters 这些为传送到命令/程序的参数Sample:start /MIN test2.bat arg1 arg2 (调用同目录下的 test2.bat,且输入2个参数给他,且本窗口最小化)Sample:e:\"program files"\极品列车时刻表\jpskb.exe (文件路径名有空格时)8.If 命令if 表示将判断是否符合规定的条件,从而决定执行不同的命令。
有三种格式:1) IF语法: if [not] "参数" == "字符串" 待执行的命令参数如果等于(not表示不等,下同)指定的字符串,则条件成立,运行命令,否则运行下一句。
(注意是两个等号)Sample: if "%1" == "a" format a:Sample: if {%1} == {} goto noparms2) if exist语法: if [not] exist [路径\]文件名待执行的命令如果有指定的文件,则条件成立,运行命令,否则运行下一句。
Sample: if exist config.sys edit config.sys (表示如果存在这文件,则编辑它,用很难看的系统编辑器)Sample: if exist config.sys type config.sys (表示如果存在这文件,则显示它的内容) 3) if errorlevel number语法: if [not] errorlevel <数字> 待执行的命令如果程序返回值等于指定的数字,则条件成立,运行命令,否则运行下一句。
(返回值必须按照从大到小的顺序排列)Sample:@echo offXCOPY F:\test.bat D:\IF ERRORLEVEL 1 (ECHO 文件拷贝失败) Else IF ERRORLEVEL 0 ECHO 成功拷贝文件pause很多DOS程序在运行结束后会返回一个数字值用来表示程序运行的结果(或者状态),称为错误码errorlevel或称返回码。