中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-02 15:35
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何实现for循环中对%A的运算 查看 845 回复 6
楼 主 如何实现for循环中对%A的运算 发表于 2006-12-13 22:33 ·  中国 北京 深圳南凌科技发展有限公司
初级用户
积分 30
发帖 9
注册 2006-12-12 12:25
19年会员
UID 73301
性别 男
状态 离线
比如批处理
FOR /L %%A IN (1,1,10) DO( SET M=10*%%A
.
.
.
.
.
.
.
)

算的结果好像不对啊,错在什么地方了?
2 发表于 2006-12-13 22:39 ·  中国 北京 联通
银牌会员
★★★
努力做坏人
积分 1,185
发帖 438
注册 2006-08-28 12:00
19年会员
UID 61449
来自 北京
状态 离线
for /l %a in (1,1,10) do set /a m=10*%a

你缺少了/A参数
我今后在论坛的目标就是做个超级坏人!!!
3 发表于 2006-12-14 00:08 ·  中国 北京 鹏博士BGP
初级用户
积分 30
发帖 9
注册 2006-12-12 12:25
19年会员
UID 73301
性别 男
状态 离线
Originally posted by telent at 2006-12-13 09:33 AM:
比如批处理
FOR /L %%A IN (1,1,10) DO( SET M=10*%%A
.
.
.
.
.
.
.
)

算的结果好像不对啊,错在什么地方了?




/A是我忘写了,我是说得到的M值总不对,总得到100
FOR /L %%A IN (1,1,10) DO( SET M=10*%%A
echo %m%)
得到的总是100
为什么啊?
4 发表于 2006-12-14 00:12 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
call echo %%m%%
5 发表于 2006-12-14 00:20 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线

  要用到变量延迟。搜索论坛里面关于变量延迟的老帖子。
6 发表于 2006-12-14 00:23 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线

  给一段演示的代码:

@echo off&setlocal enabledelayedexpansion
for /l %%a in (1,1,10) do (
set /a m=10*%%a
echo !m!
)
pause
7 发表于 2006-12-14 02:16
中级用户
★★
DOS之日
积分 337
发帖 161
注册 2006-11-04 05:27
19年会员
UID 69523
性别 男
状态 离线
4楼的方法也可以.


  1. @echo off
  2. FOR /L %%A IN (1,1,10) DO (
  3. SET /a M=10*%%A
  4. call echo.%%M%%
  5. )
  6. pause
hxuan?表ー: 2006-12-13 13:17
for /f %%h in (`echo hxuan`) do for /f %%x in (`echo hxuan`) do if %%h==%%x nul
论坛跳转: