<转载> bat 脚本基本语法 http://blog.csdn.net/bluedusk/article/details/1500629
常用命令
echo、@、call、pause、rem(小技巧:用::代替rem)是批处理文件最常用的几个命令,我们就从他们开始学起。 ==== 注 =========== 其次, :: 确实可以起到rem 的注释作用, 而且更简洁有效; 但有两点需要注意: echo 表示显示此命令后的字符 ------------------------- 当程序运行时,显示或隐藏批处理程序中的正文。也可用于允许或禁止命令的回显。 在运行批处理程序时,MS-DOS一般在屏幕上显示(回显)批处理程序中的命令。 语法 ECHO [ON|OFF] 若要用echo命令显示一条命令,可用下述语法: echo [message] 参数 ON|OFF message ------------------- CALL 从一个批处理程序中调用另一个批处理程序,而不会引起第一个批处理的中止。 语法 CALL [drive:][path]filename [batch-parameters] 参数 [drive:][path]filename batch-parameters ------------------------------- PAUSE 暂停批处理程序的执行并显示一条消息,提示用户按任意键继续执行。只能在批处 语法 PAUSE REM 在批处理文件或CONFIG.SYS中加入注解。也可用REM命令来屏蔽命令(在CONFIG.SYS 语法 REM [string] 参数 string 例1:用edit编辑a.bat文件,输入下列内容后存盘为c:/a.bat,执行该批处理文件后可实现:将根目录中所有文件写入 a.txt中,启动UCDOS,进入WPS等功能。 批处理文件的内容为: 命令注释: @echo off 不显示后续命令行及当前命令行 批处理文件的参数 批处理文件还可以像C语言的函数一样使用参数(相当于DOS命令的命令行参数),这需要用到一个参数表示符"%"。 %[1-9]表示参数,参数是指在运行批处理文件时在文件名后加的以空格(或者Tab)分隔的字符串。变量可以从%0到%9,%0表示批处理命令本身,其它参数字符串用%1到%9顺序表示。 例2:C:根目录下有一批处理文件名为f.bat,内容为: 如果执行C:/>f a: 例3:C:根目录下一批处理文件名为t.bat,内容为: 那么运行C:/>t a.txt b.txt ==== 注 =============== 初始状态, cmd 为命令名, 可以用 %0 引用 经过1次shift后, cmd 将无法被引用 经过2次shift后, arg1也被废弃, %9指向为空, 没有引用意义 遗憾的是, win9x 和DOS下均不支持 shift 的逆操作. 只有在 nt 内核命令行环境下, shift 才支持 /n 参数, 可以以第一参数为基准返复移动起始指针. 特殊命令 if goto choice for是批处理文件中比较高级的命令,如果这几个你用得很熟练,你就是批处理文件的专家啦。 一、if 是条件语句,用来判断是否符合规定的条件,从而决定执行不同的命令。 有三种格式: 1、if [not] "参数" == "字符串" 待执行的命令 参数如果等于(not表示不等,下同)指定的字符串,则条件成立,运行命令,否则运行下一句。 例:if "%1"=="a" format a: ==== if 的命令行帮助中关于此点的描述为: 2、if [not] exist [路径/]文件名 待执行的命令 如: if exist c:/config.sys type c:/config.sys ****** 注 ******** 3、if errorlevel <数字> 待执行的命令 很多DOS程序在运行结束后会返回一个数字值用来表示程序运行的结果(或者状态),通过if errorlevel命令可以判断程序的返回值,根据不同的返回值来决定执行不同的命令(返回值必须按照从大到小的顺序排列)。如果返回值等于指定的数字,则条件成立,运行命令,否则运行下一句。 如if errorlevel 2 goto x2 ==== 注 =========== if errorlevel 1 set el=1 当然, 也可以使用以下循环来替代, 原理是一致的: 更高效简洁的用法, 可以参考我写的另一篇关于获取 errorlevel 的文章 出现此种现象的原因是, if errorlevel 比较返回码的判断条件并非等于, 而是大于等于. 由于 goto 的跳转特性, 由小到大排序会导致在较小的返回码处就跳出; 而由于 set命令的 "重复" 赋值特性, 由大到小排序会导致较小的返回码 "覆盖" 较大的返回码. 另外, 虽然 if errorlevel=<数字> command 也是有效的命令行, 但也只是 command.com 解释命令行时将 = 作为命令行切分符而忽略掉罢了 二、goto 批处理文件运行到这里将跳到goto所指定的标号(标号即label,标号用:后跟标准字符串来定义)处,goto语句一般与if配合使用,根据不同的条件来执行不同的命令组。 如: goto end :end 标号用":字符串"来定义,标号所在行不被执行。 ==== willsort 编注 label 常被译为 "标签" , 但是这并不具有广泛的约定性. goto 与 : 联用可实现执行中途的跳转, 再结合 if 可实现执行过程的条件分支, 多个 if 即可实现命令的分组, 类似 C 中 switch case 结构或者 Basic 中的 select case 结构, 大规模且结构化的命令分组即可实现高级语言中的函数功能. 以下是批处理和C/Basic在语法结构上的对照: Batch C / Basic 注意:choice命令为DOS或者Windows系统提供的外部命令,不同版本的choice命令语法会稍有不同,请用choice /?查看用法。 choice的命令语法(该语法为Windows 2003中choice命令的语法,其它版本的choice的命令语法与此大同小异): CHOICE [/C choices] [/N] [/CS] [/T timeout /D choice] [/M text] 描述: 参数列表: /N 在提示符中隐藏选项列表。提示前面的消息得到显示, /CS 允许选择分大小写的选项。在默认情况下,这个工具 /T timeout 做出默认选择之前,暂停的秒数。可接受的值是从 0 /D choice 在 nnnn 秒之后指定默认选项。字符必须在用 /C 选 /M text 指定提示之前要显示的消息。如果没有指定,工具只 /? 显示帮助消息。 注意: 示例: ==== willsort 编注 =============================== Waits for the user to choose one of a set of choices. CHOICE [/C[:]choices] [/N] [/S] [/T[:]c,nn] [text] /C[:]choices Specifies allowable keys. Default is YN 例:test.bat的内容如下(注意,用if errorlevel判断返回值时,要按返回值从高到低排列): :defrag :mem :end 此批处理运行后,将显示"defrag,mem,end[D,M,E]?" ,用户可选择d m e ,然后if语句根据用户的选择作出判断,d表示执行标号为defrag的程序段,m表示执行标号为mem的程序段,e表示执行标号为end的程序段,每个程序段最后都以goto end将程序跳到end标号处,然后程序将显示good bye,批处理运行结束。 四、for 循环命令,只要条件符合,它将多次执行同一命令。 语法: FOR %%variable IN (set) DO command [command-parameters] %%variable 指定一个单一字母可替换的参数。 例如一个批处理文件中有一行: 则该命令行会显示当前目录下所有以bat和txt为扩展名的文件的内容。 ==== willsort 编注 ===================================================== 批处理示例 1. IF-EXIST 1) 首先用记事本在C:/建立一个test1.bat批处理文件,文件内容如下: 然后运行它: 如果C:/存在AUTOEXEC.BAT文件,那么它的内容就会被显示出来,如果不存在,批处理就会提示你该文件不存在。 2) 接着再建立一个test2.bat文件,内容如下: 执行: 说明: ==== willsort 编注 ===================================================== 3) 更进一步的,建立一个名为TEST3.BAT的文件,内容如下: 如果运行: 如果运行: 在这个命令执行过程中,DOS会将一个空字符串指定给参数%3。 2、IF-ERRORLEVEL 建立TEST4.BAT,内容如下: 然后执行文件: 如果文件拷贝成功,屏幕就会显示"成功拷贝文件",否则就会显示"文件拷贝失败"。 IF ERRORLEVEL 是用来测试它的上一个DOS命令的返回值的,注意只是上一个命令的返回值,而且返回值必须依照从大到小次序顺序判断。 @ECHO OFF 无论拷贝是否成功,后面的: 未找到拷贝文件 都将显示出来。 以下就是几个常用命令的返回值及其代表的意义: backup diskcomp diskcopy format |
<转载> bat 脚本基本语法 http://blog.csdn.net/bluedusk/article/details/1500629的更多相关文章
- Loadrunner11录制移动端测试脚本(原文:http://blog.csdn.net/zhailihua/article/details/73610317)
一.LR配置 1)LR设置代理,利用手机录制脚本 1-协议选择Web(HTTP/HTML)协议即可 2-录制开始前,对Recoding Options中的Port Mapping配置如下 a.新建Ne ...
- 数组中&a与&a[0]的区别 转载自http://blog.csdn.net/FX677588/article/details/74857473
在探讨这个问题之前,我们首先来看一道笔试题,如下: [摘自牛客网]下列代码的结果是:(正确答案是 C) main() { int a[5]={1,2,3,4,5}; int *ptr=(int *)( ...
- 稀疏编码(Sparse Coding)的前世今生(一) 转自http://blog.csdn.net/marvin521/article/details/8980853
稀疏编码来源于神经科学,计算机科学和机器学习领域一般一开始就从稀疏编码算法讲起,上来就是找基向量(超完备基),但是我觉得其源头也比较有意思,知道根基的情况下,拓展其应用也比较有底气.哲学.神经科学.计 ...
- 爬虫出现Forbidden by robots.txt(转载 https://blog.csdn.net/zzk1995/article/details/51628205)
先说结论,关闭scrapy自带的ROBOTSTXT_OBEY功能,在setting找到这个变量,设置为False即可解决. 使用scrapy爬取淘宝页面的时候,在提交http请求时出现debug信息F ...
- 线段树详解 (原理,实现与应用)(转载自:http://blog.csdn.net/zearot/article/details/48299459)
原文地址:http://blog.csdn.net/zearot/article/details/48299459(如有侵权,请联系博主,立即删除.) 线段树详解 By 岩之痕 目录: 一:综述 ...
- 联想笔记本 thinkpad BIOS 超级密码 Supervisor Password 清除 破解 亲测有效 转载地址https://blog.csdn.net/ot512csdn/article/details/72571674
联想笔记本 thinkpad BIOS 超级密码 Supervisor Password 清除 破解 亲测有效 转载地址https://blog.csdn.net/ot512csdn/article/ ...
- MVC和WebApi 使用get和post 传递参数。 转载https://blog.csdn.net/qq373591361/article/details/51508806
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/qq373591361/article/details/51508806我们总结一下用js请求服务器的 ...
- AutoFac控制反转 转载https://blog.csdn.net/u011301348/article/details/82256791
一.AutoFac介绍 Autofac是.NET里IOC(Inversion of Control,控制反转)容器的一种,同类的框架还有Spring.NET,Unity,Castle等.可以通过NuG ...
- Mui本地打包笔记(一)使用AndroidStudio运行项目 转载 https://blog.csdn.net/baidu_32377671/article/details/79632411
转载 https://blog.csdn.net/baidu_32377671/article/details/79632411 使用AndroidStudio运行HBuilder本地打包的Mui项目 ...
随机推荐
- 跟未名学Office - PPT操作:高效
第二章. PPT操作:高效... 3 第一节 操作视图... 3 第二节 Word草稿... 4 第三节 幻灯片母版... 5 第四节 幻灯片页... 7 第五节 幻灯片排版... 8 第六节 模板. ...
- Java第02次实验提纲(Java基本语法与类库)
1. 熟悉Git 1.1 学会使用网页版的操作代码仓库(gitee) 申请账号,然后根据老师提供的链接或者二维码加入团队,然后修改昵称. fork老师提供的代码库项目,新建自己学号命名的文件并上传一些 ...
- JAVA开源B2C系统
前言 最近有人想面向境外销售商品,但是又不想依托于亚马逊这些平台,于是找我来帮忙想弄个B2C系统.因为刚开始只是打算试试水,也就不打算投入多少成本了.所以这边就考虑使用开源的B2C系统来直接使用了. ...
- HTML+CSS补充
1. HTML+CSS补充 - 布局: <style> .w{ width:980px;margin:0 auto; } </style> <body> <d ...
- bzoj5050: 建造摩天楼
Description 属于小Q管辖的n座摩天楼从左往右排成一排,编号依次为1到n,第i座摩天楼的高度为h_i.小Q会进行m次以下两种 操作之一: 2 l r,询问h_l+h_{l+1}+...+h_ ...
- PAT 乙级 1062 最简分数(20) C++版
1062. 最简分数(20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 一个分数一般写成两个整数相除的形式: ...
- 关于Strategy和State设计模式
之前,我在描述我所采用的设计模式时,一直在Strategy和State之间犹豫,略微有些拿捏不准,说哪种设计模式好.结果到最后,会根据自己所想,觉得是State就是State,觉得Strategy就是 ...
- [UE4]手持多把枪的位置调节
如果一个角色有多把枪,但是骨骼插槽只有一个,可以通过直接在枪蓝图中调整枪的位置和旋转角度.
- Go语言 函数,工程管理
Go语言 函数,工程管理 1.无参无返回值函数的使用 package main import "fmt" func main() { // 无参无返回值函数的调用:函数名() fu ...
- python网页爬虫开发之一
1.beautifulsoap4 和 scrapy解析和下载网页的代码区别 bs可以离线解释html文件,但是获取html文件是由用户的其他行为的定义的,比如urllib或者request : 而sc ...