bat批处理模板
写了个批量替换字符串的bat批处理(replaceChar.bat)
写了个批量替换字符串的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]是你的磁盘路径。
批处理程序删除自身bat批处理
不过如果你的批处理需要将当前的批处理改变目录就会出现错误,无法达到我们预知的效果。
例如:当前批处理名为 do.bat 复制代码 代码如下:
move *.* d:\ del %0
就无法删除do.bat了。 那么就需要结合下管道操作符| 复制代码 代码如下:
del %0 | move *.* d:\
Hale Waihona Puke 如下即可。很多朋友想把自己写的bat加密防止别人随意修改但也有人想将别人加密的bat解密查看源码学习等本来就是一个矛盾体这里脚本之家都给整理下方便需要的朋友
批处理程序删除自身 bat批处理
批处理程序删除自身.bat
echo 有时候我们需要批处理程序在执行完成之后删除自身,可以用 del %0 例:
复制代码 代码如下:
BAT示例
批处理示例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批处理简明教程第一部分:批处理的专用命令批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为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] 将返回的结果取反值即“如果没有”的意思。
bat文件怎么写
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批处理文件可以帮助我们自动化一些重复性的任务,提高工作效率。
下面是一些编写.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命令汇总
办公中常用的批处理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批处理文件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实例
有用的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批处理文件
如何编写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命令汇总办公中常用的批处理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批处理完整教程
第一章批处理基础第一节常用批处理内部命令简介批处理定义:顾名思义,批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT或者CMD。
这些命令统称批处理命令。
小知识:可以在键盘上按下Ctrl+C组合键来强行终止一个批处理的执行过程。
了解了大概意思后,我们正式开始学习.先看一个简单的例子!@echo offecho "欢迎来到非常BAT!"pause把上面的3条命令保存为文件test.bat或者test.cmd然后执行,他就会在屏幕上显示以下二行话:欢迎来到非常BAT!请按任意键继续. . .这就是一个简单批处理文件了,这个批处理文件一共就用了2条命令 "echo" 和"pause" 还有一个特殊符号"@"从上面这个简单的批处理中,我们可以发现其实批处理就是运用一些含有特殊意义的符号和一些完成指定功能的命令组合而成,那么在批处理中有多少这样的特殊符号和功能命令呢?我们现在就来仔细了解一下一些最常用的!(以下内容来源网络,请各位仔细阅读,好进入下节的实例说明)======================================================批处理的常见命令(未列举的命令还比较多,请查阅帮助信息)? ???1、REM 和 ::? ???2、ECHO 和 @? ???3、PAUSE? ???4、ERRORLEVEL? ???5、TITLE? ???6、COLOR? ???7、mode 配置系统设备? ???8、GOTO 和 :? ???9、FIND? ???10、START? ???11、assoc 和 ftype? ???12、pushd 和 popd? ???13、CALL? ???14、shift? ???15、IF? ???16、setlocal 与变量延迟? ???17、ATTRIB??显示或更改文件属性介绍命令1、REM 和 ::REM为注释命令,一般用来给程序加上注解,该命令后的内容不被执行,但能回显。
经典bat批处理范例
经典bat批处理范例批处理脚本(通常以`.bat` 为扩展名)是在Windows 操作系统中运行的脚本文件,用于执行一系列命令。
以下是一个简单的经典批处理脚本范例,演示了一些常见的操作,如用户输入、条件语句、循环等。
```batch@echo offREM 这是一个经典的批处理脚本范例REM 获取用户输入set /p username=请输入您的用户名:REM 显示欢迎消息echo 欢迎, %username%! 这是一个经典批处理脚本。
REM 显示当前日期和时间echo 当前日期和时间: %date% %time%REM 检查操作系统版本verREM 使用条件语句if "%username%"=="admin" (echo 你是管理员用户。
) else (echo 你不是管理员用户。
)REM 使用循环set count=1:loopecho 这是第%count% 次循环。
set /a count+=1if %count% leq 5 goto loopREM 暂停以便查看输出pause```这个批处理脚本执行以下操作:1. 获取用户输入用户名。
2. 显示欢迎消息和当前日期时间。
3. 检查操作系统版本。
4. 使用条件语句检查用户是否为管理员。
5. 使用循环输出消息多次。
6. 最后,通过`pause` 命令使脚本暂停,以便用户查看输出。
请注意,批处理语法相对简单,但也有一些限制和注意事项。
在更复杂的情况下,可能需要考虑使用其他脚本语言或编程语言。
bat批处理使用小例子
bat批处理使⽤⼩例⼦1,统计⽂件夹中⽂件的个数2,bat的变量与命令set的⽤法set 功能⼀览[设置变量]格式:set 变量名=变量值详细:被设定的变量以%变量名%引⽤[取消变量]格式:set 变量名=详细:取消后的变量若被引⽤%变量名%将为空[展⽰变量]格式:set 变量名详细:展⽰以变量名开头的所有变量的值[列出所有可⽤的变量]格式:set[计算器]格式:set /a 表达式⽰例:set /a 1+2*3 输出 7[设置变量为表达式计算后的值]set a=1+2echo %a% ==>输出1+2------------------------------------set /a a=1+2echo %a% ==>输出3[设置变量为⽤户输⼊的值]set /p a=输⼊⼀个值 ==>输出输⼊⼀个值echo %a% ==>显⽰⽤户输⼊的值!注意!set不能⽤在复合语句⾥⾯⽐如if 1==1 set a=2或者for %%i in (a) do set a=2预定义的变量下⾯是些已经被底层定义好可以直接使⽤的变量:不会出现在 SET 显⽰的变量列表中%CD% - 扩展到当前⽬录字符串。
%DATE% - ⽤跟 DATE 命令同样的格式扩展到当前⽇期。
%TIME% - ⽤跟 TIME 命令同样的格式扩展到当前时间。
%RANDOM% - 扩展到 0 和 32767 之间的任意⼗进制数字。
%ERRORLEVEL% - 扩展到当前 ERRORLEVEL 数值。
%CMDEXTVERSION% - 扩展到当前命令处理器扩展名版本号。
%CMDCMDLINE% - 扩展到调⽤命令处理器的原始命令⾏。
%0 bat的完整路径名如"C:\Windows\system32\xxx.bat"%1 bat参数1依次类推%2参数2...%path% - 当前的环境变量。
以分号隔开的路径列表,路径可包含空格,可以以'\'结尾, 可以以双引号包围之。
【最新推荐】bat文件范例word版本 (21页)
本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!== 本文为word格式,下载后可方便编辑和修改! ==bat文件范例篇一:批处理bat实用实例批处理文件是无格式的文本文件,它包含一条或多条命令。
它的文件扩展名为 .bat 或 .cmd。
在命令提示下键入批处理文件的名称,或者双击该批处理文件,系统就会调用Cmd.exe按照该文件中各个命令出现的顺序来逐个运行它们。
使用批处理文件(也被称为批处理程序或脚本),可以简化日常或重复性任务。
当然我们的这个版本的主要内容是介绍批处理在入侵中一些实际运用,例如我们后面要提到的用批处理文件来给系统打补丁、批量植入后门程序等。
下面就开始我们批处理学习之旅吧。
(本文因篇幅较长,所以分成两部份。
前半部份讲命令,后半部分讲实例分析。
)一、简单批处理内部命令简介1.Echo 命令打开回显或关闭请求回显功能,或显示消息。
如果没有任何参数,echo 命令将显示当前回显设置。
语法echo [{on off}] [message]Sample:@echo off / echo hello world在实际应用中我们会把这条命令和重定向符号(也称为管道符号,一般用> >> ^)结合来实现输入一些命令到特定格式的文件中.这将在以后的例子中体现出来。
2.@ 命令表示不显示@后面的命令,在入侵过程中(例如使用批处理来格式化敌人的硬盘)自然不能让对方看到你使用的命令啦。
Sample:@echo off@echo Now initializing the program,please wait a minite...@format X: /q/u/autoset (format 这个命令是不可以使用/y这个参数的,可喜的是微软留了个autoset这个参数给我们,效果和/y是一样的。
)3.Goto 命令指定跳转到标签,找到标签后,程序将处理从下一行开始的命令。
Windows批处理文件bat
Windows批处理⽂件bat⼀、⽂本1.注释::和rem都表⽰注释和c++中的//⼀样@echo off关闭回显(回显就是将命令语句显⽰到控制台),@就是让后⾯的语句不显⽰,此处就是不显⽰echo off⽰例:@echo offrem 这是注释::这是注释echo Hello Worldpause@echo on2.修改控制台输出字符颜⾊color 颜⾊例如color 01,01:蓝⾊,02:绿⾊,04:红⾊3.字符串处理替换set var1=teststringset var2=%var1:test=mmm%::var2=mmmstring,⽤mmm替换test合并set a=aaaset b=bbbset c=%a%%b%::c=aaabbb4.bat⽂件中⽂乱码将bat⽂件编码格式改为ANSI⼆、for循环1.语法:在cmd窗⼝中:for %I in (command1) do command2在批处理⽂件中:for %%I in (command1) do command2之所以要区分cmd窗⼝和批处理⽂件两种环境,是因为在这两种环境下,命令语句表现出来的⾏为虽然基本⼀样,但是在细节上还是稍有不同,最明显的⼀个差异就是:在cmd窗⼝中,for之后的形式变量I必须使⽤单百分号引⽤,即%I;⽽在批处理⽂件中,引⽤形式变量I必须使⽤双百分号,即%%I。
为了⽅便起见,若不是特别强调,以下的讲解都以批处理⽂件环境为例。
2.关键字for、in和do是for语句的关键字,它们三个缺⼀不可;%%I是for语句中对形式变量的引⽤,即使变量l在do后的语句中没有参与语句的执⾏,也是必须出现的;in之后,do之前的括号不能省略;in之后必须有⼀个空格command1表⽰字符串或变量,command2表⽰字符串、变量或命令语句;3.⽰例Demo1@echo offfor %%I in (ABC) do echo %%Ipause保存为.bat⽂件(批处理⽂件)并执⾏,将会在弹出的批处理窗⼝中看到这样的信息:4.注意事项:for语句的形式变量I,可以换成26个字母中的任意⼀个,这些字母会区分⼤⼩写,也就是说,%%I和%%i会被认为不是同⼀个变量;形式变量I还可以换成其他的字符,但是,为了不与批处理中的%0~%9这10个形式变量发⽣冲突,请不要随意把%%I替换为%%0~%%9中的任意⼀个;in和do之间的command1表⽰的字符串或变量可以是⼀个,也可以是多个,每⼀个字符串或变量,我们称之为⼀个元素,每个元素之间,⽤空格键、跳格键(Tab)、逗号、分号或等号分隔;for语句依次提取command1中的每⼀个元素,把它的值赋予形式变量I,带到do后的command2中参与命令的执⾏;并且每次只提取⼀个元素,然后执⾏⼀次do后的命令语句,⽽⽆论这个元素是否被带到command2中参与了command2的运⾏;当执⾏完⼀次do后的语句之后,再提取command1中的下⼀个元素,再执⾏⼀次command2,如此循环,直到command1中的所有元素都已经被提取完毕,该for语句才宣告执⾏结束。
批处理程序设计模板
IF '%Choice%'=='0' GOTO BEGIN
IF '%Choice%'=='' GOTO LOOP1
GOTO LOOP1
:LOOP2
CLS
ECHO 功能2(可继续添加菜单选择)
ECHO.
ECHO [0]返回
ECHO ┃ ┃
ECHO ┃ [1] 菜单1 ┃
ECHO ┃ ┃
ECHO ┗━━━━━━━━━━━━━━━━━━━━━━┛
ECHO.
SET Choice=
SET /P Choice= 请按数字选择您要进行的操作,然后按Enter键:
IF NOT '%Choice%'=='' SET Choice=%Choice:~0,1%
ECHO.
ECHO ☆大牙猫电脑维护工作室欢迎您☆
ECHO.
ECHO /bigtoothcat
ECHO.
ECHO 请按任意键退出...
PAUSE >NUL
学习实例: 老毛桃制作的批量文件CAB打包工具
ECHO.
SET Choice=
SET /P Choice=请输入菜单选择:
IF '%Choice%'=='0' GOTO BEGIN
IF '%Choice%'=='' GOTO LOOP2
GOTO LOOP2
:LOOP3
CLS
ECHO 功能3(可继续添加菜单选择)
COLOR b0
批处理bat脚本编写(附详细例子)
批处理bat脚本编写(附详细例⼦)由于在项⽬开发的过程中经常需要编写bat脚本,⽽看⼤⽜们编写的bat脚本简直⼀头雾⽔,⽊有办法,作为bat菜鸟的我只有通过最最简单的例⼦来熟悉bat脚本中的常⽤命令,由此来开启我的bat脚本学习之路....1.常⽤命令举例a.创建⽂件夹: md D:\mybat //将在D盘下创建⼀个名为 mybat的⽂件夹b.删除⽂件夹: rd D:\mybat //将删除D盘中的mybat⽂件夹删除c.删除⽂件夹中的⽂件: del D:\mybat\sheepmu.txt //删除⽂件sheepmu.txtdel D:\mybat\sheepmu.txt /q //安静模式删除,即删除时不弹出是否删除的提⽰框d.复制⽂件: xcopy D:\mybat\sheepmu.txt D:\mybat1 //若D中⽆mybat1这个⽂件夹则会创建⽂件夹再复制e.向⽂件中写⼊内容: echo sheepmu >> D:\mybat\sheepmu.txt //如果这个⽂件不存在就创建⽂件并输⼊。
如果是⽂件夹不存在就不会成功! >>与>的区别是>是覆盖掉原来的;>>是直接输⼊到原来的尾部f.显⽰⽂件中内容: type D:\mybat\sheepmu.txtg.更改⽂件名后缀: ren D:\mybat\*.txt *.html2.批处理⼩例⼦a.检查是否中冰河@echo offnetstat -a -n > D:\mybat\sheepmu.txttype D:\mybat\sheepmu.txt | find "7626" && echo 遭了,中了!pause & exit解析:第⼀⾏:echo off 表⽰关闭显⽰,@表⽰不显⽰ echo off本⾝第⼆⾏:netstat 显⽰协议及当前tcp/ip连接, -a表⽰显⽰所有连接和侦听端⼝;-n表⽰以数字的形式显⽰地址和;并把这些信息写⼊到⽂件D:\mybat\sheepmu.txt中。
BAT批处理文件
常用:1.自动打开光驱Mshta javascipt:new ActiveXObject('WMPlayer.OCX').cdromCollection.Item(0).Eject();window.close;"2.关机命令@echo offSetlocalCd/d%temp%Echo set colOperatingSystems = GetObject("winmgmts:{(shutdown)}").ExceQuery("select * From Win32_OperatingSystem")>shutdown.vbsEcho for each objOperatingSystem in colOperatingsystems>>shutdown.vbsEcho ObjPeratingSystem.Win32Shutdown(12)>>shutdown.vbsEcho next>>shutdown.vbsCscript.shutdown.vbsDel.shutdown.vbs:::;Value meaning0 log off0 +4 forced log off1 shutdown1+4 forced shutdown2 reboot2+4 forced reboot8 power off8+4 forced power offPause3.列举进程@echo for each ps in getobject_>ps.vbs@echo ("winmgmts:\\.\root\cimv2.win32_process").instance_>>ps.vbs@echo wscript.echo ps.handle^&vbtab^&^&vbtab^&ps.executablepath:next>>ps.vbs Csript//nologo ps.vbs &del ps.vbsPause4.查看电脑信息Start C:\WINDOWS\PCHealth\HelpCtr\System\sysinfo\sysComponentInfo.htm5.显示隐藏文件(有些毒会阻止打开隐藏的文件,用这个,一定能看到)Reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced"/v Hidden/t reg_dword/d 1/fReg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced"/v HideFileExt /reg_dword/d 0/fReg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced"/v ShowSuperHidden/t reg_dword/d 1/f6.查看内存7.@echo offColor f2Echo.Systeminfo|find "物理内存总量"Pause>nul7.结束进程bat@echo off:1Title结束进程Color f1Mode con:cols=40 lines=18Echo.Set/p run=请输入要结束的程序名::ntsd -c q -pn %run%Taskkill /f /t /im %run%Pause>nul8.显示自己的ip地址@echo offSet slecition1 =Set/p sletion1=请输入ip地址:Netsh interface ip set address name="本地连接" source=static addr=%slection1% mask=255.255.255.0Set slecition12=Set/p sletion2=请输入网关地址:Netsh interface ip set address name="本地连接" gateway=%slection2% gwmetric=0Set slecition3 =Set/p sletion3=请输入dns地址:Netsh interface ip set dns name="本地连接" source=static addr=%slection3% register=PRIMARYSet slecition4 =Set/p sletion4=请输入备份dns地址:Netsh interface ip add dns name="本地连接" addr=%slection4%Netsh interface ip set wins name="本地连接" source=static addr=nonePause10.百度搜索@echo offSet a=Set/p a=请输入关键字……Start /s?wd=%a%BAT文件的妙用(转)一个文件搞定操作系统的所有问题BAT一、查漏补缺——给系统功能添把火我们的操作系统虽然功能强大,但是在某方面的应用上依旧存在欠缺,如:没有定时关机软件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
竭诚为您提供优质文档/双击可除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。