有爱,有技术,有你^_^)y
╱人◕‿‿◕人╲订下契约(注册新用户)

合作站点账号登陆

QQ登录

只需一步,快速开始

快捷导航
查看: 871|回复: 5
收起左侧

[系统技术研究] 批处理教程——PART3 批处理与变量

[复制链接]

该用户从未签到

397

主题

61

好友

11万

积分

荣誉会员

地下研究所 所长

积分
115586
发表于 2011-8-3 11:39:33 | 显示全部楼层 |阅读模式

╱人◕‿‿◕人╲定下契约

您需要 登录 才可以下载或查看,没有账号?╱人◕‿‿◕人╲订下契约(注册新用户)

x
批处理与变量
在批处理中适当的引用变量将会使你所编制的程序应用面更广。批处理每次能处理的变量从%0~%910个。其中%0默认给批处理的文件名使用。除非在使用SHIFT命令后%0才能被%1所替代。引用shift命令的例子如果把%1前面多加上一个%0那么结果如下:
C:\>SHIFT.BAT 12 3 4 5 6 7 8 9 10 11
SHIFT.BAT 1 2 3 45 6 7 8 9
1 2 3 4 5 6 7 8 910
2 3 4 5 6 7 8 9 1011
系统是如何区分每个变量的呢,系统区分变量的规则为字符串中间的空格,即只要发现空格就把空格前面的字符当作一个变量而空格后面的字符则作为另一个变量。如果你的变量是一个当中包含空格的长目录名这时候你需要用引号将他圈起来。例:
批处理内容为:
ECHO %1
ECHO %2
ECHO %3
输入命令:
C:\>TEST“Program Files” Program Files
Program Files
Program
Files
在一个复杂的批处理中又可能同时使用的变量会超过10个这时候会和系统的规则想冲突那么这个问题怎么解决呢?在系统中还有一种变量称之为环境变量(使用SET命令可以查看当前系统的环境变量)如当前系统目录是%windir%%SystemRoot%等。当同时使用的参数超过10个的时候,我们可以把某些在后面的程序中还要调用的变量保存为环境变量。具体用法如 SET A=%1 这样我们就命名了一个新的环境变量A 在调用变量A的时候要%A%这样调用,环境变量不受SHIFT命令影响。如果要改变一个环境变量需要重新对其设置才能改变。当然也可以进行变量与变量之间的传递来达到目的。下面我们来看一个例子,批处理如下:
ECHO OFF
SET PASS=%1
SHIFT
SET PASS1=%1
SHIFT
ECHO %PASS%%PASS1% %1 %2 %3 %4 %5 %6 %7 %8 %9
SHIFT
ECHO %PASS% %PASS1% %9
SETPASS=%PASS1% 变量的传递
SET PASS1=%9
SHIFT
ECHO %PASS% %PASS1% %9
使用命令:C:\>TEST A B 3 4 5 6 7 8 9 10 K L
A B 3 4 5 6 7 8 910 K 注意:这一行显示了11个变量
A B L 在使用了3SHIFT之后%9变成了L
B L 变量的传递后的结果

回复

使用道具 举报

该用户从未签到

169

主题

155

好友

5万

积分

第三章

一本満足バ一本満足バ一本満足バ一本満足バ一本満足バ一本満足バ

积分
51484
发表于 2012-5-10 01:08:23 | 显示全部楼层
wz#7130!
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

6

主题

27

好友

6583

积分

序章

积分
6583
发表于 2012-7-24 18:00:30 | 显示全部楼层
嘛……吾辈果然知识有限啊
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

4

主题

11

好友

5033

积分

序章

积分
5033
发表于 2014-7-19 22:19:22 | 显示全部楼层
-------------------------
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

4

主题

11

好友

5033

积分

序章

积分
5033
发表于 2014-7-19 22:19:32 | 显示全部楼层
-------------------------
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

6

主题

19

好友

3605

积分

序章

积分
3605
发表于 2014-9-14 22:00:00 来自手机 | 显示全部楼层
相比于杀手级应用,提供各种杀手级应用的杀手级平台的威力,无疑更加巨大和长久。
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

本版积分规则

小黑屋|手机版|技术宅(基宅) ( 粤ICP备18082987号-1 | 浙公网安备 33010902001746号 )

GMT+8, 2024-4-29 09:25 , Processed in 0.289662 second(s), 19 queries , Redis On.

Copyright © 2018 技术宅社区

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表