批处理命令和变量

原创 2006年06月05日 17:59:00

1。批处理命令:

http://labmice.techtarget.com/articles/batchcmds.htm

http://smallphantom.blogchina.com/

2。批处理变量及其类型

DOS可以说是弱类型的
没有像C语言那样分得很细
你想一次ping遍局域网
可以这样做
for /L %i in (1,1,255) do @ping -a 192.168.0.%i
这样就遍历了从192.168.0.1到192.168.0.255这256个地址
注意这是在CMD下的输入
如果想实现批处理要将其中的"%"用"%%"替代
for的L参数说明变量是整数类型
这样循环才有意义

还有你说手动将变量加一操作
可以使用set命令
但要注意参数的使用
比如一条命令
set aa=10
这句话单拿出来很难说这个aa是个什么类型
因为10可以是个数字
但是
set aa=shily
则不然
shily只能是字符串

至于加法等算术操作可以通过A参数来说明
比如在set aa=10的前提下执行
set /A aa=%aa%+1
那么aa的值就成了11
但是如果这样简单的写
set aa=%aa%+1
那么aa的值是什么呢?
事实上系统只做简单的拼接
aa的值边成了10+1
这是个字符串
于是上文的循环可以使用goto 来做了
set ip=0
:loop
if %ip%==255 goto end
set /A ip=%ip%+1
ping 192.168.0.%ip%
goto loop
:end
这样就实现了便历的功能
但是for语句不是更方便吗?

一些小问题:
定义过变量后使用%xxx%的格式来访问变量
如果变量不存在
并不会出现严重的错误
比如set aa=%abcd%
而abcd变量并不存在
那么aa的值就是%abcd%

在学习的时候检测变量的值可以使用
echo %aa%的格式

还有个人性化的地方
set aa=aaaaaaa
aet /A bb=%aa%+1
echo %bb%
那么bb的值是1
这是错误的
aa本不是整数变量怎么能加一呢
所以系统将它当成0来处理

set aa=15+15
echo %aa%
set bb=%aa%+1
echo %bb%
将先输出"15+15"然后输出"31"
这是人性化的地方
系统将15+15当成了30来评估

好了就先写这些
官方帮助参考
for /?
set /?

dos批处理命令大全

  • 2017年11月01日 20:21
  • 80KB
  • 下载

批处理命令大全

  • 2013年10月01日 22:22
  • 11KB
  • 下载

bat 批处理命令 文件 类型 语法 格式 应用 详解(转)

URL: http://www.boofee.net/bigfee/read.php?94   大一的时候看了篇关于如何书写bat文件的文章。那时候看得很仔细,大概都看懂了。不过都2年了,基本上...

批处理命令大全

  • 2014年05月09日 09:42
  • 27KB
  • 下载

[WIN][BAT]批处理命令2

  • 2007年05月18日 22:10
  • 39B
  • 下载

Windows脚本 - Bat批处理命令使用教程

这是一篇技术教程,我会用很简单的文字表达清楚自己的意思,你要你识字就能看懂,就能学到知识。写这篇教程的目的,是让每一个看过这些文字的朋友记住一句话:如果爱可以让事情变的更简单,那么就让它简单吧!看这篇...
  • CNM3333
  • CNM3333
  • 2013年03月25日 15:20
  • 643

批处理命令学习!!!

  • 2009年03月04日 14:24
  • 42KB
  • 下载

[整理修改] DOS 批处理命令判断操作系统版本 执行各版本对应语句

昨天在家里试用  netsh interface ip set address 这些命令更改上网IP、DNS、网关等,今天将那些代码拿来办公室一用发现尽报错,才想起来家里电脑是WIn7系统,办公室机器...

批处理命令大全

  • 2012年03月06日 15:41
  • 21KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:批处理命令和变量
举报原因:
原因补充:

(最多只允许输入30个字)