中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已结]获取文件中特定位置的字符串
作者:
标题: [已结]获取文件中特定位置的字符串 上一主题 | 下一主题
hugreen
初级用户





积分 23
发帖 15
注册 2008-3-26
状态 离线
『楼 主』:  [已结]获取文件中特定位置的字符串

a.txt文件内容如下:
218 221 233 221 217 206 209 208 209 212 213 213.
213 211 210 213 215 217 215 214 215 218 218 181
172 171 166 171 168 171 164 157 150 148 145 141.
140 142 143 146 142 143 146 146 145 141 140 139
140 142 141 141 137 137 139 139 138 140 140 140=
UB
74 79 84 82 81 80 83 84 83 89 84 90
84 59 37 28 27 28 25 23 23 25 45 52 23 1544.
59 61 67 77 78 80 83 81 87 86 83 81
72 52 38 26 19 16 14 10 14 17 26 36 08 1511.
40 54 66 67 75 77 70 81 72 70 75 78
64 46 26 20 14 13 12 13 14 17 18 22 11 1453.
像数组操作一样,随机获取文件中第M行N列的元素,并存储在变量中,可以实现吗?

[ Last edited by hugreen on 2009-4-6 at 20:38 ]

2009-3-12 12:53
查看资料  发短消息 网志   编辑帖子  回复  引用回复
yishanju
银牌会员

[b]看你妹啊[/b]


积分 1488
发帖 1357
注册 2006-5-20
状态 离线
『第 2 楼』:  

这样做有什么用呢
能说明一下用途目的吗




有问题请发论坛或者自行搜索,再短消息问我的统统是SB
2009-3-12 20:28
查看资料  发短消息 网志   编辑帖子  回复  引用回复
netbenton
银牌会员

批处理编程迷


积分 1916
发帖 752
注册 2008-12-28
来自 广西
状态 离线
『第 3 楼』:  

::取指定行列数据
@echo off&Setlocal Enabledelayedexpansion

::指定行
set/a m=%1 1>nul
::指定列
set/a n=%2 2>nul

set/a nn=n
for /f "skip=%m% delims=" %%a in ('echo.^&type ABC.txt') do (
set str=%%a
if "!str!"=="" goto :eof
set/a mu=n/25+1
        for /l %%b in (1,1,!mu!) do (
            if !nn! leq 26 (
                call :sub
                echo. data: !str!
                pause
                goto :eof
            ) else (
                for /f "tokens=25*" %%c in ('echo.!str!') do set str=%%d
            )
            set/a nn=n-25

        )
)

:sub
for /f "tokens=%nn%" %%c in ('echo.!str!') do set str=%%c
[ Last edited by netbenton on 2009-3-13 at 04:43 ]



精简
[你的+我的+他的]=>[大家的]    个人网志   
2009-3-13 02:26
查看资料  发送邮件  发短消息 网志  OICQ (37659560)  编辑帖子  回复  引用回复
hugreen
初级用户





积分 23
发帖 15
注册 2008-3-26
状态 离线
『第 4 楼』:  

谢谢netbenton,测试可以读取数据
请问:
set/a mu=n/25+1中的25是做什么用的??
还有就是echo后面跟个点和不带点有什么区别??

2009-3-17 09:40
查看资料  发短消息 网志   编辑帖子  回复  引用回复
26933062
银牌会员





积分 2268
发帖 879
注册 2006-12-19
状态 离线
『第 5 楼』:  


@echo off
::指定行
set/a m=%1
::指定列
set/a n=%2
set/a m-=1
call :loop
pause&exit
:loop
if %m% lss 1 (set skip=) else (set skip=skip=%m%)
for /f "%skip% tokens=%n%" %%a in (a.txt) do echo %%a&goto :EOF
goto :EOF




致精致简!
2009-3-17 10:10
查看资料  发短消息 网志   编辑帖子  回复  引用回复
netbenton
银牌会员

批处理编程迷


积分 1916
发帖 752
注册 2008-12-28
来自 广西
状态 离线
『第 6 楼』:  

超过26列的用到那一句来分割,比如5行80列,
如果小于32列的,这样就以了,取%1行%2列:
for /f "skip=%1 tokens=%2" %%a in ('echo.^&type a.txt') do echo.%%a
echo.后一点,可以用来显示空行,内容不空时,有没有一点都一样。



精简
[你的+我的+他的]=>[大家的]    个人网志   
2009-3-17 20:35
查看资料  发送邮件  发短消息 网志  OICQ (37659560)  编辑帖子  回复  引用回复
hugreen
初级用户





积分 23
发帖 15
注册 2008-3-26
状态 离线
『第 7 楼』:  

哦,知道了,原来是防空处理
THAKNS

2009-4-4 22:38
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: