楼 主
[已结]获取文件中特定位置的字符串
发表于 2009-03-12 12:53 · 中国 北京 鹏博士BGP
初级用户
★
积分 23 发帖 15 注册 2008-03-26 19:44 18年会员 UID 114120 性别 男
状态 离线
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 ]
第 2 楼
发表于 2009-03-12 20:28 · 中国 北京 联通
银牌会员
★★★★
[b]看你妹啊[/b]
积分 1,488 发帖 1,357 注册 2006-05-20 12:00 20年会员 UID 55770
状态 离线
这样做有什么用呢
能说明一下用途目的吗
有问题请发论坛或者自行搜索,再短消息问我的统统是SB
第 3 楼
发表于 2009-03-13 02:26 · 中国 广东 东莞 电信
银牌会员
★★★
批处理编程迷
积分 1,916 发帖 752 注册 2008-12-28 04:30 17年会员 UID 135147 性别 男 来自 广西
状态 离线
::取指定行列数据
@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 ]
第 4 楼
发表于 2009-03-17 09:40 · 中国 北京 鹏博士BGP
初级用户
★
积分 23 发帖 15 注册 2008-03-26 19:44 18年会员 UID 114120 性别 男
状态 离线
谢谢netbenton,测试可以读取数据
请问:
set/a mu=n/25+1中的25是做什么用的??
还有就是echo后面跟个点和不带点有什么区别??
第 5 楼
发表于 2009-03-17 10:10 · 中国 湖南 娄底 电信
银牌会员
★★★
积分 2,268 发帖 879 注册 2006-12-19 16:23 19年会员 UID 73968 性别 男
状态 离线
@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
致精致简!
第 6 楼
发表于 2009-03-17 20:35 · 中国 广东 东莞 电信
银牌会员
★★★
批处理编程迷
积分 1,916 发帖 752 注册 2008-12-28 04:30 17年会员 UID 135147 性别 男 来自 广西
状态 离线
超过26列的用到那一句来分割,比如5行80列,
如果小于32列的,这样就以了,取%1行%2列:
for /f "skip=%1 tokens=%2" %%a in ('echo.^&type a.txt') do echo.%%a
echo.后一点,可以用来显示空行,内容不空时,有没有一点都一样。
第 7 楼
发表于 2009-04-04 22:38 · 中国 广东 广州 电信
初级用户
★
积分 23 发帖 15 注册 2008-03-26 19:44 18年会员 UID 114120 性别 男
状态 离线
论坛跳转:
— 请选择 —
站务公告 & 版主讨论
意见反馈 & 网友交流
DOS学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正