Board logo

标题: [文本处理] 读取文本内容后设置为变量 [打印本页]

作者: lzwudi    时间: 2008-10-28 21:12     标题: 读取文本内容后设置为变量

假设A.TXT内容如下(内容不固定):
  1. 19830608 26ZHU
  2. 19840726 25SHU
  3. 19850319 24NIU
复制代码
读取A.TXT内容后:
把19830608设置变量为A1
把26ZHU设置变量为A2
把19840726设置变量为B1
把25SHU设置变量为B2
把19850319设置变量为C1
把24NIU设置变量为C2
代码越精简越好,运行时间越少越好!
请指教!
作者: pusofalse    时间: 2008-10-28 21:34

  1. @echo off&setlocal enabledelayedexpansion
  2. set "var=A B C D E F G H I J K L M N O P Q R S T U V W X Y Z"
  3. for %%a in (%var%) do set /a nn+=1 & set "_!nn!=%%a"
  4. for /f "tokens=1*" %%a in (a.txt) do (
  5.       set /a aa +=1
  6.       call set "%%_!aa!%%1=%%a"
  7.       call set "%%_!aa!%%2=%%b"
  8. )
  9. for %%a in (%var%) do (
  10.      for %%i in (1 2) do (
  11.      if defined %%a%%i echo %%a%%i:  !%%a%%i!
  12. ))
  13. pause
复制代码

[ 本帖最后由 pusofalse 于 2008-10-28 21:47 编辑 ]
作者: lzwudi    时间: 2008-10-28 21:39

请问此文本中有多行字符可以做到吗?
作者: Batcher    时间: 2008-10-28 21:40     标题: 回复 3楼 的帖子

请问你能亲自做下测试再提问吗?
作者: pusofalse    时间: 2008-10-28 21:43     标题: 回复 3楼 的帖子

上面的代码你测试过了吗??
多行?多少行?一共就26个字母,也就最多只能26行,超过26行,引用变量时就会出错,因为赋值的是1、2、3,用%1% %2%引用变量时会被误当作%1、%2、%3 参数处理。。。你说应该怎样做?、、、
作者: lzwudi    时间: 2008-10-28 21:46

别急别急,我只是好奇,想问问,不明白嘛!惹你生气了,我就是有死不要脸的精神,^_^
作者: Batcher    时间: 2008-10-28 21:49     标题: 回复 6楼 的帖子

本论坛提倡先亲自测试后提问的精神
作者: jellyhk    时间: 2008-10-29 03:59

完全看不懂!
看起眼睛花呢!
我只知道   <      可以付值
作者: Batcher    时间: 2008-10-29 09:58     标题: 回复 8楼 的帖子

那就多看看for的教程吧




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