中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-12 03:33
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » FOR语句内使用SET设置不正常。
可打印版本  788 / 4
第1楼 liaobiaoxing 发表于 2009-07-10 16:55
新手上路 发帖 2 积分 2
FOR语句内使用SET设置不正常。
比如我有一个1.txt里面已经有一系列的数字。目前我想任意取1.txt内的两个数字相加,让他如果等于某一个数的话就显示出等式来。比如说,我要的结果是20,1.txt中刚好有一个11,一个9,则会显示:20=11+9

我的语句是这样的。

FOR /F %%I IN (1.TXT) DO (
FOR /F %%J IN (1.TXT) DO (
SET C=%%I
SET D=%%J
SET /A SUM=%c%+%d%
IF "%SUM%"=="%NUM%" ECHO %SUM%=%C%+%D%
)
)

可是SET语句好像没用了,希望大家教我下,我才学批处理没多久。
第2楼 defanive 发表于 2009-07-11 02:38
初级用户 发帖 62 积分 111
预处理问题,开启变量延迟或者使用call解决,具体方法请搜索论坛
第3楼 liaobiaoxing 发表于 2009-07-11 06:00
新手上路 发帖 2 积分 2
其实set /a已经赋值成功的,用SET命令也可以查得到SUM具体的值,可就是在IF语句中,显示不出来。不知道怎么办。
第4楼 czl1378 发表于 2009-07-11 11:19
初级用户 发帖 114 积分 161
小D也来了?楼主,小D都说了,你搜索下变量延时,Setlocal,然后你就明白你循环内的%C%,%D%该改为!C!,!D!了
第5楼 Hanyeguxing 发表于 2009-07-12 01:01
银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂
Originally posted by liaobiaoxing at 2009-7-11 06:00:
其实set /a已经赋值成功的,用SET命令也可以查得到SUM具体的值,可就是在IF语句中,显示不出来。不知道怎么办。



[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023