![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-11 23:52 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [求助]求读取文件每行内容并赋值给变量的高效写法! |
| 可打印版本 1,331 / 5 |
| 第1楼 bugs | 发表于 2010-09-10 04:24 |
| 新手上路 发帖 13 积分 18 | |
|
[求助]求读取文件每行内容并赋值给变量的高效写法! 文件x.txt,共40行,如下格式:
ABC=11111 ABC=22222 ABC=33333 ... ABC=44444 需要读取每行,把=号后的值赋给变量。 写了2段代码来实现,代码1处理完得7秒多,代码2得6秒多,目前文件内容才40行就这么耗时。- -! 求更好的解决方法! 代码1: 代码2: [ Last edited by bugs on 2010-9-10 at 04:25 ] |
|
| 第2楼 slore | 发表于 2010-09-10 09:20 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
搞不明白要findstr干嘛?要2个for干嘛?
|
|
| 第3楼 DXSX | 发表于 2010-09-10 10:25 |
| 中级用户 发帖 147 积分 247 | |
|
@echo off & setlocal ENABLEDELAYEDEXPANSION
set x=0 & IF EXIST TEMP.BAT DEL TEMP.BAT for /f "tokens=1,2 delims==" %%c in (x.txt) do (set /a x+=1 & echo set Value!x!=%%d >>temp.BAT) ENDLOCAL IF EXIST TEMP.BAT (CALL TEMP.BAT & DEL TEMP.BAT) [ Last edited by DXSX on 2010-9-10 at 10:52 ] |
|
| 第4楼 bugs | 发表于 2010-09-12 07:43 |
| 新手上路 发帖 13 积分 18 | |
Originally posted by DXSX at 2010-9-10 10:25: 谢谢,很高效。 但是代码忽略了空行,如果想把空行也做为内容来处理怎么修改代码? [ Last edited by bugs on 2010-9-12 at 07:45 ] |
|
| 第5楼 DXSX | 发表于 2010-09-12 08:49 |
| 中级用户 发帖 147 积分 247 | |
Originally posted by bugs at 2010-9-12 07:43: 空行等于没有内容,用 set 是没有办法赋值的。也没有意义。 |
|
| 第6楼 bugs | 发表于 2010-09-12 09:51 |
| 新手上路 发帖 13 积分 18 | |
Originally posted by DXSX at 2010-9-12 08:49: 嗯。了解。 我只是想让行号可以匹配对应值,方便些。如 40行 变量名就是value40 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |