Board logo

标题: FOR语句内使用SET设置不正常。 [打印本页]

作者: liaobiaoxing     时间: 2009-7-10 16:55    标题: 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语句好像没用了,希望大家教我下,我才学批处理没多久。
作者: defanive     时间: 2009-7-11 02:38
预处理问题,开启变量延迟或者使用call解决,具体方法请搜索论坛
作者: liaobiaoxing     时间: 2009-7-11 06:00
其实set /a已经赋值成功的,用SET命令也可以查得到SUM具体的值,可就是在IF语句中,显示不出来。不知道怎么办。
作者: czl1378     时间: 2009-7-11 11:19
小D也来了?楼主,小D都说了,你搜索下变量延时,Setlocal,然后你就明白你循环内的%C%,%D%该改为!C!,!D!了
作者: Hanyeguxing     时间: 2009-7-12 01:01


  Quote:
Originally posted by liaobiaoxing at 2009-7-11 06:00:
其实set /a已经赋值成功的,用SET命令也可以查得到SUM具体的值,可就是在IF语句中,显示不出来。不知道怎么办。

CODE:  [Copy to clipboard]
@echo off&setlocal enabledelayedexpansion
SET NUM=11
FOR /F %%I IN (1.txt) (
SET C=%%I
DO FOR /F %%J IN (1.txt) DO (
SET D=%%J
SET /A SUM=!c!+!d!
IF !SUM!==!NUM! ECHO !SUM!=!C!+!D!
)
)
pause





欢迎光临 中国DOS联盟论坛 (http://cndos.fam.cx/forum/) Powered by Discuz! 2.5