没有合适的资源?快使用搜索试试~ 我知道了~
Bat /DOS开发关键知识点
需积分: 0 1 下载量 128 浏览量
2010-05-14
09:11:18
上传
评论
收藏 37KB DOC 举报
温馨提示
试读
3页
开发bat小程序的一些总结,主要涉及到一些很关键的知识,比较难理解和常用的
资源详情
资源评论
资源推荐
1. “^”号是一个转义字符, 当命令行从 bat 文件中读命令时, 会把^和其后面的命令转
义, ^和&, |, >, <在一起时, 会转义. 所以这几个符号被括起来时, 需要用^来转义,
否则会出错. 但在命令行直接敲命令则不需要.
例 1: 如 bat 中有以下内容
echo .Item(NameSpace&"sendusing") = 2>>123.txt
执行这个命令的时候出现问题
得到 123.txt 后,打开,出现的不是预期想要得到的结果:
.Item(NameSpace&"sendusing") = 2,
而是:'"sendusing")' 不是内部或外部命令,也不是可运行的程序或批处理文件。
如下改进:
echo .Item(NameSpace^&"sendusing") = ^2>>123.txt
批处理里面,& 是连接两个命令的符号,属于特殊符号,要显示他们,需要在
前面加上批处理的转义字符(^),还有几个特殊符号,比如(< > | )等。
至于 2 前面为什么加上转移符号,因为这里的 2 在重定向符号(>>)的前面,
表示“错误输出”句柄,意思是“把命令行的错误信息输出到其后的文件当中去”,
所以这里加上了转义字符(^)使其转义成普通的字符。
例 2: for /f "tokens=2" %%m in ('tasklist /fi "imagename eq eclipse.exe" /v ^|
findstr /i "java"') do taskkill /f /pid %%m
这段命令若”|”不加转义字符, 则会显示: | was unexpected at this time. 因为 for 的
in 部分要组成一个字符串, 而不是命令. 因为 for 在执行中会自动把这些字符串
作为命令去执行(注意, 是单引号). 所以我们要确保 tasklist /fi "imagename eq
eclipse.exe" /v ^| findstr /i "java"是字符串, 那么就得让”|”也当成普通的字符,而非
命令, 那就得加一个”^”.
2. 在 for 循环中的变量, 在 bat 文件中需要用%%, 而在命令行中则只需要用%. 这是
由于命令窗口和 bat 执行的方式不同而已.%也是转义字符, %%会被转义成%
3. 对于字符串的截取问题, bat 提供了支持. 如%date%会得到当前的系统日期, 可以
用%date:~X,Y%形式来截取, 规则如下:
a. X >=0, 表示从左边第 X 个位置开始截取(包括 X 位), 位置是以 0 开始;
X<0 则表示从右边第 X 个位置开始, 最后一位的位置是-1, 倒数第二位
是-2;
b. Y>0 表示截取 Y 个字符串; Y<0 表示截取至从右开始的 Y 位置, 这里
就不是表示长度, 而是表示位置
c. 若”,Y”不存在, 表示从第 X 个截取到末尾
还有一种是%date:X=Y%, 表示将%date%中的 X 全部用 Y 代替.所以删除一个字
符串,可以用%date:X= %
caringxq
- 粉丝: 1
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0