bat批处理模板
- 格式:docx
- 大小:40.08 KB
- 文档页数:21
写了个批量替换字符串的bat批处理(replaceChar.bat)在windows上跑case时,我⽤它来替换xml⽂档中的名称和值什么的,还可以。
但如果遇到bat中有特殊意义的字符⽐如<,>,%等就不⾏了,⽽且替换过程会消除每⾏的空格。
鉴于dos知识有限,还没找到好的办法来避免这两种状况。
如果⽤shell脚本完成替换功能就简单多了。
或者直接⽤ultraedit的替换功能更简单。
代码如下:@echo offrem ***************************************************************************rem ** replaceChar.bat - command line arguments List **rem ** **rem ** %1 - ext_name **rem ** %2 - characters replaced **rem ** %3 - new characters **rem ** **rem ***************************************************************************set ext_name=%1set old_char=%2set new_char=%3if "%ext_name%" == "" goto warningif "%old_char%" == "" goto warningif "%new_char%" == "" goto warningsetlocal enabledelayedexpansionset /a a=1for %%x in (*.%ext_name%) do (for /f "tokens=*" %%i in (%%x) do (set "var=%%i"if not !var!.==. (set "var=!var:%old_char%=%new_char%!"echo !var!!>>!a!.xml))set /a a=!a!+1)goto end:warningecho the tool replaceChar requires 3 command line arguments:echo 1) ext name of file in which you want to replace some charactersecho 2) characters you want to be replacedecho 3) new characters with which you want to replace some characeters:endecho ***** end to replace characters *****echo -如果想修改后的⽂件名和原来的⼀样,可以把这⼀段“echo !var!!>>!a!.xml”改成“echo !var!!>>[path]%%x.xml”,其中[path]是你的磁盘路径。
批处理示例1. IF-EXIST1)首先用记事本在C:¥建立一个test1.bat批处理文件,文件内容如下:@echo offIF EXIST ¥AUTOEXEC.BAT TYPE ¥AUTOEXEC.BATIF NOT EXIST ¥AUTOEXEC.BAT ECHO ¥AUTOEXEC.BAT does not exist然后运行它:C:¥>TEST1.BAT如果C:¥存在AUTOEXEC.BAT文件,那么它的内容就会被显示出来,如果不存在,批处理就会提示你该文件不存在。
2)接着再建立一个test2.bat文件,内容如下:@ECHO OFFIF EXIST ¥%1 TYPE ¥%1IF NOT EXIST ¥%1 ECHO ¥%1 does not exist执行:C:¥>TEST2 AUTOEXEC.BAT该命令运行结果同上。
说明:(1) IF EXIST 是用来测试文件是否存在的,格式为IF EXIST [路径+文件名] 命令(2) test2.bat文件中的%1是参数,DOS允许传递9个批参数信息给批处理文件,分别为%1~%9(%0表示test2命令本身) ,这有点象编程中的实参和形参的关系,%1是形参,AUTOEXEC.BAT是实参。
3) 更进一步的,建立一个名为TEST3.BAT的文件,内容如下:@echo offIF "%1" == "A" ECHO XIAOIF "%2" == "B" ECHO TIANIF "%3" == "C" ECHO XIN如果运行:C:¥>TEST3 A B C屏幕上会显示:XIAOTIANXIN如果运行:C:¥>TEST3 A B屏幕上会显示XIAOTIAN在这个命令执行过程中,DOS会将一个空字符串指定给参数%3。
bat批处理简明教程第一部分:批处理的专用命令批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT。
这些命令统称批处理命令,下面我就来给大家介绍一下批处理的命令。
1、REMREM 是个注释命令一般是用来给程序加上注解的,该命令后的内容在程序执行的时候将不会被显示和执行。
例:REM 你现在看到的就是注解,这一句将不会被执行。
在以后的例子中解释的内容都REM 会放在REM后面。
请大家注意。
2、ECHOECHO 是一个回显命令主要参数有OFF和ON,一般用ECHO message来显示一个特定的消息。
例:Echo offRem 以上代表关闭回显即不显示所执行的命令Echo 这个就是消息。
Rem 以上代表显示“这就是消息”这列字符执行结果:C:\>ECHO.BAT这个就是消息。
3、GOTOGOTO 即为跳转的意思。
在批处理中允许以“:XXX”来构建一个标号然后用GOTO :标号直接来执行标号后的命令。
例:LABELREM 上面就是名为LABEL的标号。
DIR C:\DIR D:\GOTO LABELREM 以上程序跳转标号LABEL处继续执行。
4、CALLCALL 命令可以在批处理执行过程中调用另一个批处理,当另一个批处理执行完后再继续执行原来的批处理。
例:批处理2.BAT内容如下:ECHO 这就是2的内容批处理1.BAT内容如下:ECHO 这是1的内容CALL 2.BATECHO 1和2的内容全部显示完成执行结果如下:C:\>1.BAT这是1的内容这就是2的内容1和2的内容全部显示完成5、PAUSEPAUSE 停止系统命令的执行并显示下面的内容。
例:C:\> PAUSE请按任意键继续 . . .6、IFIF 条件判断语句,语法格式如下:IF [NOT] ERRORLEVEL number commandIF [NOT] string1==string2 commandIF [NOT] EXIST filename command说明:[NOT] 将返回的结果取反值即“如果没有”的意思。
1.批处理文件(.bat)怎么写一.简单批处理内部命令简介 1.Echo 命令打开回显或关闭请求回显功能,或显示消息。
语法:goto label (label是参数,指定所要转向的批处理程序中的行。
) Sample: if { %1 }=={ } goto noparms if { %2 }=={ } goto noparms(如果这里的if、%1、%2你不明白的话,先跳过去,后面会有详细的解释。
)显示的注释提示您将另一张磁盘放入驱动器 A 时,pause 命令会使程序挂起,以便您更换磁盘,然后按任意键继续处理。
6.Call 命令从一个批处理程序调用另一个批处理程序,并且不终止父批处理程序。
语法 call [[Drive:][Path] FileName [BatchParameters]] [:label [arguments]] 参数[Drive: }[Path] FileName 指定要调用的批处理程序的位置和名称。
filename 参数必须具有 .bat 或 .cmd 扩展名。
7.start 命令调用外部程序,所有的DOS命令和命令行程序都可以由start命令来调用。
入侵常用参数: MIN 开始时窗口最小化 SEPARATE 在分开的空间内开始 16 位 Windows 程序 HIGH 在 HIGH 优先级类别开始应用程序 REALTIME 在 REALTIME 优先级类别开始应用程序 WAIT 启动应用程序并等候它结束 parameters 这些为传送到命令/程序的参数执行的应用程序是 32-位 GUI 应用程序时,CMD.EXE 不等应用程序终止就返回命令提示。
如果在命令脚本内执行,该新行为则不会发生。
8.choice 命令 choice 使用此命令可以让用户输入一个字符,从而运行不同的命令。
9.If 命令 if 表示将判断是否符合规定的条件,从而决定执行不同的命令。
有三种格式: 1、if "参数" == "字符串" 待执行的命令参数如果等于指定的字符串,则条件成立,运行命令,否则运行下一句。
如何自己编写BAT批处理文件自己编写.bat批处理文件可以帮助我们自动化一些重复性的任务,提高工作效率。
下面是一些编写.bat批处理文件的基础知识和常见用法。
一、基本知识1. 批处理文件的文件扩展名是.bat。
3.批处理文件是一系列的命令,每一行包含一个命令。
4.可以在批处理文件中使用变量和条件语句。
二、常用命令2. echo:打印文本到屏幕上。
3. pause:暂停批处理的执行,等待用户按下任意键继续。
4. cd:改变当前目录。
5. dir:列出当前目录下的文件和子目录。
6. copy:复制文件。
7. del:删除文件。
8. move:移动文件。
9. start:打开指定的应用程序或文件。
10. call:调用另一个批处理文件。
11. if:条件判断命令。
三、编写示例下面是一个简单的示例,演示了如何编写一个.bat批处理文件。
echo "欢迎使用我的批处理文件!"pauseecho "现在开始列出当前目录下的文件和子目录:"dirpauseecho "请输入要复制的文件名:"set /p filename=copy %filename% D:\backupecho "文件已复制到D:\backup目录下。
"pausestart D:\backup以上示例演示了一个简单的批处理文件,具体功能包括:1.打印欢迎信息到屏幕上。
2.暂停批处理的执行,等待用户按下任意键继续。
3.列出当前目录下的文件和子目录。
4. 提示用户输入要复制的文件名,将文件复制到D:\backup目录下。
5. 打开D:\backup目录。
这只是一个简单的示例,实际应用中可以根据需要,编写更复杂的批处理文件来完成更多的任务。
四、进阶用法除了基本的命令和语法,我们还可以通过批处理文件实现更复杂的功能,如循环、条件判断、函数调用等。
这些功能可以通过使用批处理文件的变量、条件语句和跳转命令来实现。
办公中常用的批处理bat命令一、批量产生示例文件@echo offset /p w=请输入要产生示例文件的格式(即扩展名并以回车结束):set a=0:loopset /a a+=1type nul>第%a%集.%w%if %a% == 20 goto endgoto loop:end二、批量按格式分类文件for %%i in (*) do (md %%~ximove *%%~xi %%~xi)Pause三、批量修改文件名@echo offset /p w=请输入文件格式(即扩展名并以回车结束):set /p wf=请输入要修改的文字(以回车结束):set /p cb=请输入要改成的文字(若是删除则直接回车,以回车结束): for /f "delims=" %%i in ('dir /b /a-d "*.%w%"' ) do (set str1=%%isetlocal EnableDelayedExpansionset "str1=!str1:%wf%=%cb%!"ren "%%i" "!str1!"endlocal)Pause四、按字母顺序提取目录清单dir /on *.*/b>目录清单.txt五、批量移动-文件和文件夹部分重名@echo offfor %%a in (*.docx) do (for /f "tokens=1 delims=+" %%b in ("%%~na") do (for /d %%i in ("%%~b*") do (move "%%b*.*" "%%~i\")))pause六、批量移动-文件和文件夹重名@echo offsetlocal enabledelayedexpansion for %%a in (*.docx) do (set "file=%%~na"md "!file!"move "!file:~,8!*" "!file!\")pause。
教你如何自己编写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"` 命令删除指定路径的文件。
有用的bat实例一、引言在计算机操作中,批处理(Batch)文件是一种用于自动化一系列命令的脚本文件。
通过使用批处理文件,我们可以简化重复的操作,提高工作效率。
本篇文章将介绍几个实用的批处理实例,帮助您更好地了解批处理文件的功能和应用。
二、实例1:自动备份文件目的:每天自动将指定目录下的文件备份到另一个存储设备。
步骤:1. 创建一个新的批处理文件,命名为“备份.bat”。
2. 在批处理文件中输入以下命令:```shell@echo offset source_folder=C:\Data\Currentset backup_folder=D:\Backup\for %%f in (%source_folder%*.*) do (echo Backing up file: %%fcopy "%%f" "%backup_folder%")```3. 设置一个计划任务,每天凌晨执行“备份.bat”文件。
4. 确保已将需要备份的文件放置在“source_folder”指定的目录下。
效果:每天凌晨,批处理文件将自动将指定目录下的文件备份到另一个存储设备,便于数据保护和恢复。
三、实例2:批量重命名文件目的:将指定目录下所有以“.jpg”结尾的文件按照年份和序号进行重命名。
步骤:1. 创建一个新的批处理文件,命名为“rename.bat”。
2. 在批处理文件中输入以下命令:```batch@echo offset source_folder=C:\Images\for %%f in (%source_folder%*.jpg) do (set filename=%%~nfset year=%filename:~0,4%set number=%filename:~-4%ren "%%f" "(%year%)%number%.jpg")```3. 设置一个计划任务,每天凌晨执行“rename.bat”文件。
如何编写BAT批处理文件先举个简单的例子:让电脑每天在指定时间关机,可以用下面方法打开记事本,写入以下内容:at 22:59 shutdown -s -f -t 3保存为shutdown.bat文件,双击执行即可(如果希望每天如此,就把它放在启动文件夹里)下面说说bat的常用命令echo、@、call、pause、rem(小技巧:用::代替rem)是批处理文件最常用的几个命令,我们就从他们开始学起。
==== 注===========首先, @ 不是一个命令, 而是DOS 批处理的一个特殊标记符, 仅用于屏蔽命令行回显. 下面是DOS命令行或批处理中可能会见到的一些特殊标记符:CR(0D) 命令行结束符Escape(1B) ANSI转义字符引导符Space(20) 常用的参数界定符Tab(09) ; = 不常用的参数界定符+ COPY命令文件连接符* ? 文件通配符"" 字符串界定符| 命令管道符>> 文件重定向符@ 命令行回显屏蔽符/ 参数开关引导符: 批处理标签引导符% 批处理变量引导符其次, :: 确实可以起到rem 的注释作用, 而且更简洁有效; 但有两点需要注意:第一, 除了:: 之外, 任何以:开头的字符行, 在批处理中都被视作标号, 而直接忽略其后的所有内容, 只是为了与正常的标号相区别, 建议使用goto 所无法识别的标号, 即在:后紧跟一个非字母数字的一个特殊符号.第二, 与rem 不同的是, ::后的字符行在执行时不会回显, 无论是否用echo on打开命令行回显状态, 因为命令解释器不认为他是一个有效的命令行, 就此点来看, rem 在某些场合下将比:: 更为适用; 另外, rem 可以用于config.sys 文件中.=====================echo 表示显示此命令后的字符echo off 表示在此语句后所有运行的命令都不显示命令行本身@与echo off相象,但它是加在每个命令行的最前面,表示运行时不显示这一行的命令行(只能影响当前行)。
竭诚为您提供优质文档/双击可除bat批处理模板篇一:bat使用格式详细说明1echo和@回显控制命令@#关闭单行回显echooff#从下一行开始关闭回显@echooff#从本行开始关闭回显。
一般批处理第一行都是这个echoon#从下一行开始打开回显echo#显示当前是echooff状态还是echoon状态echo.#输出一个"回车换行",一般就是指空白行echohelloworld#输出helloworld"关闭回显"是指运行批处理文件时,不显示文件里的每条命令,只显示运行结果批处理开始和结束时,系统都会自动打开回显2errorlevel程序返回码echo%errorlevel%每个命令运行结束,可以用这个命令行格式查看返回码用于判断刚才的命令是否执行成功默认值为0,一般命令执行出错会设errorlevel为13dir显示目录中的文件和子目录列表dir#显示当前目录中的文件和子目录dir/a#显示当前目录中的文件和子目录,包括隐藏文件和系统文件dirc:/a:d#显示c盘当前目录中的目录dirc:\/a:-d#显示c盘根目录中的文件dird:\mp3/b/p#逐屏显示d:\mp3目录里的文件,只显示文件名,不显示时间和大小dir*.exe/s显示当前目录和子目录里所有的.exe文件其中*是通配符,代表所有的文件名,还一个通配符代表一个任意字母或汉字如c*.*代表以c开头的所有文件.exe代表所有文件名是一个字母的.exe文件如果指定的目录或文件不存在,将返回errorlevel为1 每个文件夹的dir输出都会有2个子目录.和...代表当前目录..代表当前目录的上级目录。
dir.#显示当前目录中的文件和子目录dir..#显示当前目录的上级目录中的文件和子目录其它参数可参考dir/4cd更改当前目录cdmp3#进入当前目录中的mp3目录cd..#进入当前目录中的上级目录cd\#进入根目录cd#显示当前目录cd/dd:\mp3#可以同时更改盘符和目录cd\"documentsandsettings"\allusers文件名带空格,可以不加引号建议加上引号,因为有的时候不加引号会运行出错,如登录脚本如果更改到的目录不存在,则出错返回errorlevel=15md创建目录mdabc#在当前目录里建立子目录abcmdd:\a\b\c#如果d:\a不存在,将会自动创建6rd删除目录rdabc#删除当前目录里的abc子目录,要求为空目录rd/s/qd:\temp#删除d:\temp文件夹及其子文件夹和文件,不需要按y确认7del删除文件deld:\test.txt#删除指定文件,不能是隐藏、系统、只读文件del*.*删除当前目录里的所有文件,不包括隐藏、系统、只读文件,要求按y确认del/q/a/fd:\temp\*.*删除d:\temp文件夹里面的所有文件,包括隐藏、只读、系统文件,不包括子目录。
del/q/a/f/sd:\temp\*.*删除d:\temp及子文件夹里面的所有文件,包括隐藏、只读、系统文件,不包括子目录8ren文件重命名ren1.txt2.bak#把1.txt更名为2.bakren*.txt*.ini#把当前目录里所有.txt文件改成.ini文件rend:\temptmp#支持对文件夹的重命名9cls清屏10type显示文件内容typec:\boot.ini#显示指定文件的内容,程序文件一般会显示乱码type*.txt#显示当前目录里所有.txt文件的内容11copy拷贝文件copyc:\test.txtd:\#复制c:\test.txt文件到d:\copyc:\test.txtd:\test.bak#复制c:\test.txt文件到d:\,并重命名为test.bakcopyc:\*.*#复制c:\所有文件到当前目录,不包括隐藏文件和系统文件不指定目标路径,则默认目标路径为当前目录copycontest.txt#从屏幕上等待输入,按ctrl+z结束输入,输入内容存为test.txt文件con代表屏幕,prn代表打印机,nul代表空设备copy1.txt+2.txt3.txt#合并1.txt和2.txt的内容,保存为3.txt文件如果不指定3.txt,则保存到1.txtcopytest.txt+复制文件到自己,实际上是修改了文件日期12title设置cmd窗口的标题title新标题#可以看到cmd窗口的标题栏变了13ver显示系统版本14label和vol设置卷标vol#显示卷标label#显示卷标,同时提示输入新卷标labelc:system#设置c盘的卷标为system15pause暂停命令运行该命令时,将显示下面的消息:请按任意键继续...一般用于看清楚屏幕上显示的内容16rem和::注释命令注释行不执行操作17date和time日期和时间date#显示当前日期,并提示输入新日期,按"回车"略过输入date/t#只显示当前日期,不提示输入新日期time#显示当前时间,并提示输入新时间,按"回车"略过输入time/t#只显示当前时间,不提示输入新时间18goto和:跳转命令:label#行首为:表示该行是标签行,标签行不执行操作gotolabel#跳转到指定的标签那一行19find(外部命令)查找命令find"abc"c:\test.txt在c:\test.txt文件里查找含abc字符串的行如果找不到,将设errorlevel返回码为1find/i"abc"c:\test.txt查找含abc的行,忽略大小写find/c"abc"c:\test.txt显示含abc的行的行数20more(外部命令)逐屏显示morec:\test.txt#逐屏显示c:\test.txt的文件内容21tree显示目录结构treed:\#显示d盘的文件目录结构22tokens=2,3*delims=,"%iin(myfile.txt)do@echo%i%j%k 会分析myfile.txt中的每一行,忽略以分号打头的那些行,将每行中的第二个和第三个符号传递给for程序体;用逗号和/或空格定界符号。
请注意,这个for程序体的语句引用%i来取得第二个符号,引用%j来取得第三个符号,引用%k来取得第三个符号后的所有剩余符号。
对于带有空格的文件名,您需要用双引号将文件名括起来。
为了用这种方式来使用双引号,您还需要使用usebackq选项,否则,双引号会被理解成是用作定义某个要分析的字符串的。
%i专门在for语句中得到说明,%j和%k是通过tokens=选项专门得到说明的。
您可以通过tokens=一行指定最多26个符号,只要不试图说明一个高于字母z或z的变量。
请记住,FoR变量名分大小写,是通用的;而且,同时不能有52个以上都在使用中。
您还可以在相邻字符串上使用FoR/F分析逻辑;方法是,用单引号将括号之间的filenameset括起来。
这样,该字符串会被当作一个文件中的一个单一输入行。
最后,您可以用FoR/F命令来分析命令的输出。
方法是,将括号之间的filenameset变成一个反括字符串。
该字符串会被当作命令行,传递到一个子cmd.exe,其输出会被抓进内存,并被当作文件分析。
因此,以下例子:FoR/F"usebackqdelims=="%iin(`set`)do@echo%i会枚举当前环境中的环境变量名称。
以下列举一个简单的例子,他将说明参数/l和没有参数的区别:删除文件1.txt2.txt3.txt4.txt5.txt例:echooFFFoR/l%%Fin(1,1,5)dodel%%F.txt或FoR%%Fin(1,2,3,4,5)dodel%%F.txt以上2条命令执行的结果都是一样的如下:c:\>del1.txtc:\>del2.txtc:\>del3.txtc:\>del4.txtc:\>del5.txt8、setlocal开始批处理文件中环境改动的本地化操作。
在执行setlocal之后所做的环境改动只限于批处理文件。
要还原原先的设置,必须执行endlocal。
达到批处理文件结尾时,对于该批处理文件的每个尚未执行的setlocal命令,都会有一个隐含的endlocal 被执行。
例:@echooFFsetpath/*察看环境变量pathpausesetlocalsetpath=e:\tools/*重新设置环境变量pathsetpathpauseendlocalsetpath从上例我们可以看到环境变量path第1次被显示得时候是系统默认路径。
被设置成了e:\tools后显示为e:\tools 但当endlocal后我们可以看到他又被还原成了系统的默认路径。
但这个设置只在该批处理运行的时候有作用。
当批处理运行完成后环境变量path将会还原。
9、shiFtshiFt命令可以让在命令上的的命令使用超过10个(%0~%9)以上的可替代参数例:echooFFecho%1%2%3%4%5%6%7%8%9shiFtecho%1%2%3%4%5%6%7%8%9shiFtecho%1%2%3%4%5%6%7%8%9执行结果如下:c::\>shiFt.bat1234567891011123456789234567891034567891011以上就是基于win2000下的9个批处理命令。
批处理命令大全(二)20xx-05-1011:49第二部分:特殊的符号与批处理在命令行下有些符号是不允许使用的但有些符号却有着特殊的意义。
1、符号(@)@在批处理中的意思是关闭当前行的回显。
我们从上面知道用命令echooff可以关掉整个批处理的命令回显但却不能不显示echooff这个命令。
现在我们在这个命令前加上@这样echooff这一命令就被@关闭了回显从而达到所有命令均不回显得要求2、符号(>)>的意思是传递并覆盖。
他所起的作用是将运行后的回显结果传递到后面的范围(后面可是文件也可是默认的系统控制台)例:文件1.txt的文件内容为:1+1使用命令c:\>dir*.txt>1.txt这时候1.txt的内容如下驱动器c中的卷没有标签。
卷的序列号是301a-1508c:\的目录20xx-03-1114:041,005FRunlog.txt20xx-04-0416:3818,598,494log.txt篇三:bat批处理语法目录定义与内涵1.2.3.4.5.首先,批处理文件是一个文本文件其次,批处理文件是一种简单的程序第三,每个编写好的批处理文件都相当于一个dos的外部命令第四,在dos和win9x/me系统下例子批处理的作用常用命令1.例12.例23.例3特殊命令1.2.3.4.5.6.ifgotochoiceforgotochoice例for批处1121。