Board logo

标题: [文本处理] [已解决]如何用批处理实现循环添加指定数字? [打印本页]

作者: xptool    时间: 2011-7-26 20:29     标题: [已解决]如何用批处理实现循环添加指定数字?

本帖最后由 xptool 于 2011-10-12 20:24 编辑

如何用批处理实现以下功能呢

先提示输入数字(少于16个数)

01 04 07 09 10 12 14

然后在每行数字后面 循环 加上:01  :04  :07 到:14
03 05 06 11 19 20
03 05 06 20 27 33
03 05 06 23 24 33
03 05 11 20 23 24
03 05 19 24 27 33
03 06 11 23 27 33
03 11 19 23 24 27
03 19 20 23 27 33
05 06 11 19 23 27
05 06 11 20 24 27
05 11 19 20 23 33
06 11 19 20 24 33
06 19 20 23 24 27
11 20 23 24 27 33

改成
03 05 06 11 19 20:01
03 05 06 20 27 33:04
03 05 06 23 24 33:07
03 05 11 20 23 24:09
03 05 19 24 27 33:10
03 06 11 23 27 33:12
03 11 19 23 24 27:14
03 19 20 23 27 33:01
05 06 11 19 23 27:04
05 06 11 20 24 27:07
05 11 19 20 23 33:09
06 11 19 20 24 33:10
06 19 20 23 24 27:12
11 20 23 24 27 33:14

先谢谢各位朋友了
作者: weichenxiehou    时间: 2011-7-26 20:59

本帖最后由 weichenxiehou 于 2011-7-26 21:04 编辑
  1. @echo off&setlocal enabledelayedexpansion
  2. :main
  3. cls
  4. set/p nums=Please input the numbers(not more than 16 nums) to be added,separated by spacebar:
  5. set /a n=0,m=0
  6. for %%i in (%nums%) do set #!n!=%%i&set/a n+=1
  7. if %n% gtr 15 goto :main
  8. (for /f "delims=" %%j in (test.txt) do (
  9.    set /a num=m%%n
  10.    for %%c in (!num!) do echo,%%j:!#%%c!
  11.    set /a m+=1
  12. ))>new.txt
复制代码

作者: cjiabing    时间: 2011-7-26 21:34

  1. @echo off
  2. set /p var=输入数字:
  3. for /f "tokens=*" %%a in ("%var%") do for   %%i in (1 4 7 9 10 12 14) do echo %%a %%i
  4. pause
复制代码

作者: pgfj18    时间: 2011-7-26 22:06

  1. @echo off
  2. set /p ver=输入数字用空格分开:
  3. for %%i in (%ver%) do set /a n+=1&call set ver%%n%%=%%i
  4. for /f "delims=" %%i in (1.txt) do set/anu=nn%%n+1,nn+=1&call call echo %%i:%%%%ver%%nu%%%%%%
  5. pause
复制代码

作者: tmplinshi    时间: 2011-7-26 22:57

本帖最后由 tmplinshi 于 2011-7-26 23:00 编辑
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set file="1.txt"
  4. :input
  5. set /p input=输入数字(少于16个数):
  6. set list=
  7. set count=
  8. for %%a in (%input%) do (
  9.     set "list=!list!1%%a "
  10.     set /a count += 1
  11. )
  12. if %count% gtr 15 goto input
  13. (
  14.     for /f "usebackq delims=" %%a in (%file%) do (
  15.         set /a n = list
  16.         echo %%a:!n:~1!
  17.         set list=!list:* =!
  18.         if not defined list set list=%list%
  19.     )
  20. ) >..tmp
  21. move ..tmp %file%
  22. pause
复制代码

作者: xptool    时间: 2011-10-12 19:56

感谢各位帮助 谢谢各位兄弟
作者: xptool    时间: 2011-10-12 19:59

@echo off&setlocal enabledelayedexpansion
:main
cls
set/p nums=Please input the numbers(not more than 16 nums) to be added,separated by spacebar:
set /a n=0,m=0
for %%i in (%nums%) do set #!n!=%%i&set/a n+=1
if %n% gtr 15 goto :main
(for /f "delims=" %%j in (test.txt) do (
   set /a num=m%%n
   for %%c in (!num!) do echo,%%j:!#%%c!
   set /a m+=1
))>new.txt
作者: zaixinxiangnian    时间: 2011-10-13 16:37

回复 2# weichenxiehou


    大哥这个我试了下不行,还有一些不明天,能否给解释下。想这种经常遇到的问题很想把它看懂然后弄会它
作者: zaixinxiangnian    时间: 2011-10-13 16:54

回复 3# cjiabing

cjiabing
这个试了也达不到楼主想要的结果。请你再调下
作者: zaixinxiangnian    时间: 2011-10-13 17:05

本帖最后由 zaixinxiangnian 于 2011-10-13 17:11 编辑

回复 4# pgfj18


    请教下这位前辈:这种set用法实在看不懂,能否给解释下.特别是set ver%%n%%=%%i和set/anu=nn%%n+1,nn+=1
  1. (set /a n+=1&call set ver%%n%%=%%i)
复制代码
  1. (set/anu=nn%%n+1,nn+=1&call call echo %%i:%%%%ver%%nu%%%%%%)
复制代码

作者: cjiabing    时间: 2011-10-13 17:36

回复 9# zaixinxiangnian


    老大,不要自己改了题目就来说人家的不对。
作者: weichenxiehou    时间: 2011-10-13 19:56

回复 8# zaixinxiangnian
就是啊,怎么题目都改了??这不糊弄人吗?我还以为我代码贴错了呢……
作者: zaixinxiangnian    时间: 2011-10-14 16:45

回复 11# cjiabing


    不关我事啊,,,我又不是楼主,我只想楼主想要什么结果,然后自己想不出就去研究你们是怎么写的。因为我也想知道怎么解决对吧 试了不行就给你说喽
作者: zaixinxiangnian    时间: 2011-10-14 16:47

回复 12# weichenxiehou


   
    不关我事啊,,,我又不是楼主,
四楼那个可以,你能给解释下吗?
作者: cjiabing    时间: 2011-10-18 00:03

回复 13# zaixinxiangnian


    SORRY,看错了。那你看其他题吧,可能有些我理解错题目了,或者我没试过就发上来,看来下次不能这样了。有空再改吧,最近忙。
作者: FOR    时间: 2011-10-18 00:40

  1. @echo off&setlocal enabledelayedexpansion
  2. set /p var=输入数字:
  3. set "var=%var: =%"
  4. for /f "delims=" %%i in (a.txt) do (
  5. echo,%%i:!var:~0,2!
  6. set "var=!var:~2!!var:~0,2!"
  7. )
  8. pause
复制代码





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