Board logo

标题: [文本处理] [已解决]批处理怎样按顺序输出值? [打印本页]

作者: fenglin124    时间: 2011-5-25 11:51     标题: [已解决]批处理怎样按顺序输出值?

我要实现这样的功能:
我输入一个开始值start和一个数值n,然后输出这样的结果:
如start=150,n=6,则输出以下结果到txt文档里边,然后在行尾换行:
150 151 152 153 154 155

我是这样写的:
  1. set /p start=
  2. set /p n=
  3. for /l %%i in (1 1 %%n)
  4. set sum=start+%%i
  5. echo sum>>c:\show.txt
复制代码
无法输出,请各位帮我看一下问题所在。谢谢
作者: wc726842270    时间: 2011-5-25 11:58

先不说别的,FOR语句中的DO消失了,
个人建议:重新理一下思路,不明白的看一下资料,再写一下(可惜我这儿不让干这些,悲剧)
作者: batman    时间: 2011-5-25 12:02

问题出在基础上。。。
  1. @echo off
  2. set /p min=输入开始值:
  3. set /p add=输入数量:
  4. set /a max=min+add-1
  5. >show.txt (for /l %%a in (%min%,1,%max%) do echo %%a)
  6. start show.txt
复制代码

作者: Hello123World    时间: 2011-5-25 16:12

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set /p start=
  4. set /p n=
  5. for /l %%i in (1 1 %n%) do (set /a sum=!start!+%%i
  6. echo !sum!>>show.txt
  7. )
  8. pause>nul
复制代码
许多的语法错误,建议你先看看教材——我终于明白老师当年帮我们改代码时候的痛苦了,整个成了一编译器,就检查语法错误了。
作者: fenglin124    时间: 2011-5-25 16:26

本帖最后由 fenglin124 于 2011-5-25 16:32 编辑

如果我要做成读取文件的值然后按那个算法来输出,该怎么写:(注:文件中的每个值输出的数,写在一行上,下一个值输出的数写在第二行上),我的代码应该怎么改。:
@echo off
set /p add=输入数量:
set /a max=min+add-1
>show.txt for /f %%i in (test.txt) do echo (for /l %%a in (%%i,1,%%i+%add%-1) do echo %%a)
start show.txt

test.txt内容如下:
150
174
197
作者: fenglin124    时间: 2011-5-25 16:35

我要的输出结果是横的:150  151  152  153   154
                                 217  218  219  220   221
是这种格式的
作者: CrLf    时间: 2011-5-25 16:43

  1. @echo off
  2. set /p min=输入开始值:
  3. set /p add=输入数量:
  4. set /a max=min+add-1
  5. ((for /l %%a in (%min%,1,%max%) do set /p=%%a )<nul
  6. echo;)>show.txt
  7. start show.txt
复制代码

作者: fenglin124    时间: 2011-5-25 16:52

恩,这个就是我想要的,不过,这个能不能读取文件中的值作为初始值呢。怎么实现
作者: Batcher    时间: 2011-5-25 23:52

5# fenglin124


请把所有的需求在顶楼一次性说清楚




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2