-
批处理文件编写
批处理
批处理文件是以.bat或者.cmd为扩展名的文件,其中可以包含各种命令。
批处理有的时候是非常有用的,具体我就不举例子了。
马上进入正题,下面我们看看批处理文件的一些知识。
Application Error:一般程序返回0表示没有发生问题。否则返回1或者其他数字来表示有
错误发生。
批处理基本指令:
Call:
主要工作是从一个批处理文件调用其他的批处理文件,可以传递参数给另外的批处理,且并不等待调用返回。
语法:call [[Drive:][Path] FileName [BatchParameters]] [:label [arguments]]
其中有个label是可选的,
Echo
这个不用介绍了。回显的开关。语法:Echo [on/off] message.
如果要显示一个空行,可用 echo.
Endlocal
在.bat,.cmd文件的默认隐式的有这么一句,来回复当前的环境变量到最近一次Setloacl处。将环境变量的修改控制在bat文件内部。
Setlocal
开始控制环境变量在当前的脚本中。遇到Endlocal时释放,恢复原先状态。如果没有Setlocal,那么对环境的修改将在
正果bat执行过程中有效。
For
这里的for和我们高级语言中的是不同的。这里仅仅能作用于对指定的一组文件的操作循环。
语法:for [/R/F/D/L] {%variable|%%variable} in (set) do command [ CommandLineOptions]
/R:递归
/D:仅对目录
/L: for /L {%% | %}variable in (start#,step#,end#) do command [CommandLineOptions]
/F:比较复杂了
Goto
goto :label
If
语法:
if [not] errorlevel number command [else expression]
if [not] string1==string2 command [else expression]
if [not] exist FileName command [else expression]
If command extensions are enabled, use the following syntax:
if [/i] string1 CompareOp string2 command [else expression]
if cmdextversion number command [else expression]
if defined variable command [else expression]
预定义好的变量: %cmdcmdline% : cmd.exe路径
%cmdextversion% : cmdextversion
%errorlevel% : errorlevel
所以 if defined errorlevel 为true
关于else语句格式:
if EXIST c:\1.txt (
del c:\1.txt
) else (
echo filename. missing
)
必须符合行和空格的要求。else后空格必须有
实际运行时的样子:if EXIST c:\1.txt (del c:\1.txt ) else (echo filename. missing)
Pause:
暂停批处理程序,并给以提示信息。
example:
@echo off
@echo will copy c: to d:
@echo are you sure ?[y/n]
get
if %1%==y (
pause
@echo coping....
)else (
@echo stopped!
)
保存成test.bat.
运行: test.bat y
Rem:注释
语法: Rem [message]
Shift:
调整批处理时参数位置。
批处理程序参数:
你可以在批处理程序的任何地方使用参数,参数表示为%n,n的范围从0到9.其中 %0表示的是批处理文件的文件名。
其他参数根据运行时输入的参数决定。
如有demo.bat c:\。那么参数%1的参数值就是c:\。如此类推。总计可以有8个。
通过Modifer访问参数。系统内置了对参数的扩展,如,你可以通过输入%~z1这样的方式获取1代表的文件的大小。
具体查文档:http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/batch.mspx?mfr=true
主要是针对文件的。比如获取属性(a),时间(t),大小(z)等.
主要参考资料:http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/batch.mspx?mfr=true
出处:https://www.cnblogs.com/flyingchen/archive/2007/10/28/940743.html
批处理文件是以.bat或者.cmd为扩展名的文件,其中可以包含各种命令。
批处理有的时候是非常有用的,具体我就不举例子了。
马上进入正题,下面我们看看批处理文件的一些知识。
Application Error:一般程序返回0表示没有发生问题。否则返回1或者其他数字来表示有
错误发生。
批处理基本指令:
Call:
主要工作是从一个批处理文件调用其他的批处理文件,可以传递参数给另外的批处理,且并不等待调用返回。
语法:call [[Drive:][Path] FileName [BatchParameters]] [:label [arguments]]
其中有个label是可选的,
Echo
这个不用介绍了。回显的开关。语法:Echo [on/off] message.
如果要显示一个空行,可用 echo.
Endlocal
在.bat,.cmd文件的默认隐式的有这么一句,来回复当前的环境变量到最近一次Setloacl处。将环境变量的修改控制在bat文件内部。
Setlocal
开始控制环境变量在当前的脚本中。遇到Endlocal时释放,恢复原先状态。如果没有Setlocal,那么对环境的修改将在
正果bat执行过程中有效。
For
这里的for和我们高级语言中的是不同的。这里仅仅能作用于对指定的一组文件的操作循环。
语法:for [/R/F/D/L] {%variable|%%variable} in (set) do command [ CommandLineOptions]
/R:递归
/D:仅对目录
/L: for /L {%% | %}variable in (start#,step#,end#) do command [CommandLineOptions]
/F:比较复杂了
Goto
goto :label
If
语法:
if [not] errorlevel number command [else expression]
if [not] string1==string2 command [else expression]
if [not] exist FileName command [else expression]
If command extensions are enabled, use the following syntax:
if [/i] string1 CompareOp string2 command [else expression]
if cmdextversion number command [else expression]
if defined variable command [else expression]
预定义好的变量: %cmdcmdline% : cmd.exe路径
%cmdextversion% : cmdextversion
%errorlevel% : errorlevel
所以 if defined errorlevel 为true
关于else语句格式:
if EXIST c:\1.txt (
del c:\1.txt
) else (
echo filename. missing
)
必须符合行和空格的要求。else后空格必须有
实际运行时的样子:if EXIST c:\1.txt (del c:\1.txt ) else (echo filename. missing)
Pause:
暂停批处理程序,并给以提示信息。
example:
@echo off
@echo will copy c: to d:
@echo are you sure ?[y/n]
get
if %1%==y (
pause
@echo coping....
)else (
@echo stopped!
)
保存成test.bat.
运行: test.bat y
Rem:注释
语法: Rem [message]
Shift:
调整批处理时参数位置。
批处理程序参数:
你可以在批处理程序的任何地方使用参数,参数表示为%n,n的范围从0到9.其中 %0表示的是批处理文件的文件名。
其他参数根据运行时输入的参数决定。
如有demo.bat c:\。那么参数%1的参数值就是c:\。如此类推。总计可以有8个。
通过Modifer访问参数。系统内置了对参数的扩展,如,你可以通过输入%~z1这样的方式获取1代表的文件的大小。
具体查文档:http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/batch.mspx?mfr=true
主要是针对文件的。比如获取属性(a),时间(t),大小(z)等.
主要参考资料:http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/batch.mspx?mfr=true
出处:https://www.cnblogs.com/flyingchen/archive/2007/10/28/940743.html
最新更新
python爬虫及其可视化
使用python爬取豆瓣电影短评评论内容
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比