艾巴生活网

您现在的位置是:主页>数码 >内容

数码

bat批处理命令基础、bat命令大全 适合新手

2024-01-12 21:18:03数码帅气的蚂蚁
对于bat批处理命令基础、bat命令大全,适合新手,很多网友还不是很明白,今天艾巴小编收集了这方面的知识,就将其分享出来。 操作方法:

bat批处理命令基础、bat命令大全 适合新手

对于bat批处理命令基础、bat命令大全,适合新手,很多网友还不是很明白,今天艾巴小编收集了这方面的知识,就将其分享出来。

操作方法:

01 基础部分:==========================================================================一、基本语法: 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 : 枚举当前环境Variable setlocalenabledelayeexpansion FOR /F 'usebackq delims==' %%i IN (`set`) DO @echo %%i !%%i!2) 向批处理文件传递参数%[1-9]代表参数,参数是指运行批处理文件时在文件名后添加的空格(或制表符)分隔的字符串。变量的范围可以从%0到%9,%0代表批处理命令本身,其他参数字符串按从%1到%9的顺序表示。示例:call test2.bat 'hello' 'haha' (执行同目录下的“test2.bat”文件,输入两个参数) 在“test2.bat”文件中写入: echo %1 (print: 'hello' ) echo %2 (Print: 'haha') echo %0 (Print: test2.bat) echo %19 (Print: 'hello'9)三、批量处理基本命令0.help command/?命令语法:命令/?可以显示该命令的帮助信息。示例:输入/? tmp.txt (将type 命令的帮助信息写入tmp.txt 文件) 示例:帮助类型(显示与“type /?”相同) 1.Echo 命令语法:echo [{on|off}] [message ]回声[开| OFF] 打开回声或关闭回声功能。 ECHO 显示当前的回声设置。 ECHO [消息] 显示消息。 echo off 表示该语句之后运行的所有命令都不会显示命令行本身;默认开启,开启后会显示如:C:\文件夹路径命令行。在实际应用中,我们会将该命令与重定向符号(也称为管道符号,通常是^)结合起来,以特定的格式将一些命令输入到文件中。

示例:echo off 示例:echo hello world(显示“hello world”) 示例:echo Windows 注册表编辑器版本5.00 c:\setupreg.reg(之前没有setupreg.reg 文件) 示例:echo 'SourcePath'='D : \\Win2003\\' c:\setupreg.reg (将内容追加到setupreg.reg文件中) 2、@命令表示@后面的命令不会显示。 (入侵过程中,对方自然看不到你使用的命令啦)@和echo off类似,只不过是加在每条命令行的开头,表示不会显示这一行的命令行运行时(只能影响当前行)。示例:@echo off (该语句常用于开头,表示不显示所有命令行信息,包括这句话) 示例:@echo please wait a minite. 示例:@format X: /q/u/autoset(format 这个命令不能使用/y参数,好在微软给我们留下了autoset参数,效果和/y一样。) 3、goto命令语法:goto label(label是参数,指定方向批处理程序中要重定向的行。)指定跳转到标签行。一旦找到标签行,程序将从下一行开始处理命令。标签标签的名称可以随便取,但最好是有意义的。字母前必须添加冒号“:”以表明该字母是标签。 goto 命令使用此冒号来查找下一步跳转的位置。常与if结合使用,根据不同的条件执行不同的命令组。例如参见《5.Pause命令》 4.Rem命令语法:Rem Message.(提示:用:代替rem) 注释命令相当于C语言中的,它的作用not 被执行,只是作为注释,方便其他人以后阅读和修改。示例:@Rem 这是描述.5。 Pause命令将暂停批处理的执行,并在屏幕上显示提示按任意键继续.等待用户按任意键后再继续。示例: @echo off :begin copy a:*.* d:\back echo 请将新磁盘放入驱动器A 暂停goto begin 在此示例中,驱动器A 中的磁盘上的所有文件都复制到d:\back。当出现消息提示您将另一张磁盘放入驱动器A 时,暂停命令会暂停程序,以便您可以更换磁盘,然后按任意键再次复制。 6.调用命令语法:call [[Drive:][Path] FileName [BatchParameters]] [:label [arguments]] 参数:[Drive:][Path] FileName 指定要调用的批处理程序的位置和名称。文件名参数必须具有.bat 或.cmd 扩展名。调用另一个批处理程序而不终止父批处理程序。如果不调用而直接调用另一个批处理文件,执行完该批处理文件后将无法返回到当前文件并执行当前文件的后续命令。 call 命令接受一个标签作为调用的目标。如果您在脚本或批处理文件之外使用Call,则它将无法从命令行运行。示例:call='%cd%\test2.bat' haha kkk aaa (在指定目录下调用test2.bat,并输入3个参数) 示例:call test2.bat arg1 arg2 (在同一个目录下调用test2.bat目录.bat,给他输入2个参数)注意:可以调用自身(无限循环、递归) 7、start命令调用外部程序。所有的DOS命令和命令行程序都可以通过start命令来调用。

入侵的常用参数: MIN 以窗口最小化方式启动SEPARATE 在单独的空间中启动16 位Windows 程序HIGH 以HIGH 优先级启动应用程序REALTIME 以REALTIME 优先级启动应用程序WAIT 启动应用程序并等待其完成这些参数是参数示例发送到命令/程序:start /MIN test2.bat arg1 arg2(在同一目录中调用test2.bat,向其中输入2个参数,然后最小化此窗口)示例:e:\'program files'\The best train timetable \jpskb.exe(当文件路径名有空格时) 8.If if 命令表示判断是否满足指定的条件,然后决定执行不同的命令。有三种格式: 1)IF 语法:if [not] 'parameter'=='string' 如果要执行的命令参数等于指定的字符串(not 表示不等,下同),则条件成立并且命令已运行。否则运行下一句。 (注意两个等号) 示例:if '%1'=='a' 格式a: 示例:if {%1}=={} goto noparms2) if exit 语法:if [not] exit [path\] If要执行的命令的文件名有指定的文件,则满足条件,运行该命令。否则,运行下一个句子。示例: if exit config.sys edit config.sys (意味着如果这个文件存在,则编辑它,使用丑陋的系统编辑器) 示例: if exit config.sys type config.sys (意味着如果这个文件存在,则显示其内容) 3) if errorlevel number 语法:if [not] errorlevel number 要执行的命令如果程序返回值等于指定的数字,则条件为真,运行该命令,否则运行下一句。 (返回值必须按降序排列)示例:@echo off XCOPY F:\test.bat D:\ IF ERRORLEVEL 1(ECHO 文件复制失败) Else IF ERRORLEVEL 0 ECHO 复制文件成功。操作完成后,会返回一个数值来表示程序操作的结果(或状态),称为错误级别或返回码。常见的返回码是0和1。if errorlevel命令可以用来判断程序的返回值,根据不同的返回值决定执行不同的命令。 4)Else语法:if条件(为真时执行的命令) else(不为真时执行的命令) 如果有多个条件,建议使用中括号将每个条件适当包裹起来,以避免错误。示例: if 1==0 ( echo comment1 ) else if 1==0 ( echo comment2 ) else (echo comment3 ) 注意:如果else语句需要换行,则if执行的行尾需要连接“^”,且if执行的动作必须使用(括起来),否则会报错。示例: if 1==0 ( echo comment1 ) else if 1==0 ( echo comment2 ) ^ else (echo comment3 )5) 比较运算符: EQU - 等于(通常使用“==”) NEQ - 不等于(不带“!=”,用“if not 1==1”代替) LSS - 小于LEQ - 小于或等于GTR - 大于GEQ - 大于或等于9.choice 命令选择使用此命令允许用户输入一个字符(用于选择),从而根据用户的选择返回不同的错误级别,然后使用if errorlevel 选择运行不同的命令。注:选择命令是DOS或Windows系统提供的外部命令。不同版本的choice命令的语法会略有不同。请使用选择/?检查使用情况。选择使用此命令通过让用户输入字符来运行不同的命令。使用时应加上/c:参数,并在c:后面写上可以输入的字符,中间不能有空格。

它的返回码是1234.示例:选择/c:dme defrag,mem,end 将显示:defrag,mem,end[D,M,E]?示例: choice /c:dme defrag,mem,end if errorlevel 3 goto defrag (首先判断数值最高的错误码) if errorlevel 2 goto mem if errotlevel 1 goto end10.for 命令for 命令是一个比较复杂的命令命令,主要用于带参数在指定范围内循环执行命令。 1) 对于{%变量| (set) do command [command-parameters] 中的%%variable} %variable 指定单字母可替换参数。变量名区分大小写,因此%i 与%I 不同。在批处理文件中使用FOR命令时,建议使用%%variable而不是%variable来指定变量。 (set) 指定一个文件或一组文件。可以使用通配符。 command 指定对每个文件执行的命令。命令参数指定特定命令的参数或命令行开关。 2) 如果启用命令扩展,将支持以下附加的FOR 命令格式: a.FOR /D %variable IN (set) DO 命令[command-parameters] 如果set 包含通配符,则指定与目录名匹配,不匹配文件名。 b.FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters] 检查以[drive:]path 为根的目录树,并指向每个目录中的FOR 语句。如果/R 之后没有指定目录,则使用当前目录。如果该集合只是一个点(.) 字符,则枚举目录树。 c.FOR /L %variable IN (start,step,end) DO 命令[命令参数] 该组以增量形式表示从开始到结束的数字序列。例如:(1,1,5) 将产生序列1 2 3 4 5; (5,-1,1) 将产生序列(5 4 3 2 1)。 d.带或不带usebackq 选项: FOR /F ['options'] %variable IN (file-set) DO command FOR /F ['options'] %variable IN ('string') DO command FOR /F ['options '] %variable IN (command) DO 命令参数'选项'为: eol=c - 指行注释符的结尾(只有一个,如“;”)文件的开头。 delims=xxx - 指分隔符集。这取代了空格和制表符的默认分隔符集。 tokens=x,y,m-n - 指的是每次迭代时将每行的哪个标记传递给for 本身。这会导致分配额外的变量名称。 m-n 格式是一个范围。通过nth 表示法指定mth。如果符号字符串中的最后一个字符是星号,则在解析最后一个符号后分配额外的变量并接受该行的保留文本。 usebackq - 指定在反引号字符串作为命令执行并且单引号字符是文字字符串命令的情况下使用新语法,并允许使用双引号来扩展文件名集中的文件名。 3) 示例: 1. 以下命令行将显示当前目录下所有以bat 或txt 扩展名的文件名。 for %%c in (*.bat *.txt) do (echo %%c) a。以下命令行将显示当前目录中所有包含e 或i 的目录名称。 for (*e* *i*) 中的/D %%a 执行echo %%a b。以下命令行将显示E 盘test 目录中所有扩展名为bat 或txt 的文件名。

for /R E:\test %%b in (*.txt *.bat) do echo %%b for /r %%c in (*) do (echo %%c) : 遍历当前目录c下的所有文件。以下命令行将生成序列1 2 3 4 5 for /L %%c in (1,1,5) do echo %%c d。下面两句显示当前年月日时间For /f 'tokens=1 -3 delims=-/。 ' %%j In ('Date /T') do echo %%jyear%kmonth%%ldayFor /f 'tokens=1,2 delims=: ' %%j In ('TIME /T') do echo %%j当%%k指向e时。记事本中每行去掉8个字符setlocalenabledelayedexpansion for /f %%i in (zhidian.txt) do ( set atmp=%%i set atmp=!atmp:~8! if {!atmp!}=={} ( echo.) else echo !atmp! ) : 读取记事本内容(使用delims显示一行完整,否则以空格作为分隔符) for /f 'delims=' %%a in (zhidian .txt) do echo.%%a 4) continue 和break 使用goto 来实现程序中常用的continue 和break 命令。其实很简单的continue:在for循环的最后一行写一个标签,然后跳转到这个位置。 break:在for循环外的下一句写上标签,跳转到该位置。示例:(伪代码) for /F ['options'] %variable IN (command) DO ( . do command . if . goto continue if . goto break . do command .继续):中断

以上知识分享到此为止,希望能够帮助到大家!