![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-12 04:58 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 从一文本文件中提取多个字段!! |
| 可打印版本 926 / 8 |
| 第1楼 wmysbbs | 发表于 2009-07-05 03:26 |
| 初级用户 发帖 52 积分 172 | |
|
从一文本文件中提取多个字段!! A.txt文件内容如下
F_Id=5791 F_GameName=诸侯Online F_FromPath=F:\网络游戏\诸侯Online\ F_Id=5792 F_GameName=QQ游戏 F_FromPath=F:\棋牌对战\QQGame\ F_FromPath字段的内容是已有固定的 F_FromPath=F:\网络游戏\诸侯Online\ F_FromPath=F:\棋牌对战\QQGame\ 根据上次tireless和Hanyeguxing两位高手写的代码: For /f "usebackq eol= delims=" %%a in (!TBLog!!ha!需要更新.txt) do ( if not defined %%a ( for %%? in (H K N Q) do ( echo echo 远程目录=D:\网络游戏\%%a echo 本地目录=%%?:\网络游戏\%%a 原调用.exe ) > cfg.ini echo;%%a>>!TBLog!!ha!已更新.txt ) ) 想将F_FromPath字段的内容作为变量添加到下面这一句! echo 远程目录=D:\!F_FromPath!\%%a 同样,已经有 需要更新.txt 此文本,里面的内容等于F_GameName里面的内容 再次请教!! [ Last edited by wmysbbs on 2009-7-5 at 09:22 ] |
|
| 第2楼 tireless | 发表于 2009-07-05 05:52 |
| 银牌会员 发帖 1,122 积分 2,025 | |
|
是这样吗:
提取 a.txt 中 F_FromPath 等号右边的路径作为已更新的,然后... [ Last edited by tireless on 2009-7-5 at 11:48 ] |
|
| 第3楼 wmysbbs | 发表于 2009-07-05 07:23 |
| 初级用户 发帖 52 积分 172 | |
Originally posted by tireless at 2009-7-5 05:52 AM: 不是的,应该是这样,把 改成echo 远程目录=D:\网络游戏\%%a 本来,echo 远程目录=D:\网络游戏\%%a 像这样固定的没问题,可是遇到源目录不一样的,就不能实现更新了 F_GameName=诸侯Online F_FromPath=F:\网络游戏\诸侯Online\ F_GameName=QQ游戏 F_FromPath=F:\棋牌对战\QQGame\ 这两个的源目录都不一样的 我是想,读取需要更新.txt之后,对比已更新.txt,然后再获取A.txt里面对应的F_FromPath盘符后的值(F:\网络游戏\诸侯Online\)(蓝色部分) 比如: 需要更新.txt 英雄II 地下城与勇士 劲舞团 功夫小子 诸侯Online 已更新.txt 英雄II 地下城与勇士 A.txt F_GameName=诸侯Online F_FromPath=F:\游戏\诸侯Online\ F_GameName=劲舞团 F_FromPath=F:\网络游戏\劲舞团\ 当读取到未更新的游戏 诸侯Online 时,远程目录的变量等于A.txt里面的F_FromPath盘符后的值,如此循环 cfg.ini输出的内容应该为: 远程目录=F:\游戏\诸侯Online\ 本地目录=E:\游戏\诸侯Online\ [ Last edited by wmysbbs on 2009-7-5 at 07:59 ] |
|
| 第4楼 tireless | 发表于 2009-07-05 11:36 |
| 银牌会员 发帖 1,122 积分 2,025 | |
|
[ Last edited by tireless on 2009-7-5 at 11:38 ] |
|
| 第5楼 wmysbbs | 发表于 2009-07-05 20:23 |
| 初级用户 发帖 52 积分 172 | |
|
不行,没成功,最后得出的cfg.ini文件是这样
[更新] 远程目录= 本地目录=Q:*:= |
|
| 第6楼 tireless | 发表于 2009-07-06 02:28 |
| 银牌会员 发帖 1,122 积分 2,025 | |
|
错了两个地方:
少了 setlocal enabledelayedexpansion; set #!var!=%%~pb 应该是 set #!var!=%%b; 再试试: |
|
| 第7楼 wmysbbs | 发表于 2009-07-06 10:46 |
| 初级用户 发帖 52 积分 172 | |
|
怪不得,今天我自己加了setlocal enabledelayedexpansion
可是还有点问题,按照 A.txt F_GameName=诸侯Online F_FromPath=F:\游戏\诸侯Online\ F_GameName=劲舞团 F_FromPath=F:\网络游戏\劲舞团\ 的内容是可以了,但: [5791] F_Id=5791 F_GameName=诸侯Online F_GameType=,-1, F_PcGroupId=,15,16,18, F_IconIndex=648 F_FromPath=F:\网络游戏\诸侯Online\ F_LocalPath= F_Reg= F_RunFile=play.exe F_RunCmd= F_Index= F_UseCount=0 F_LastUseTime=2009-7-4 7:11:03 F_GameInfo= F_IsUpdateForce=0 F_IsUpdateVer=0 F_IsUpdateDate=0 F_Ver= F_Date=0 F_DontDeleteFile=False F_IsUseSize=False F_IsUseDate=False F_ErrorDate=False F_UpdateModel=0 F_FirstWaitRun=False F_FirstWaitTime= F_FirstRunFile= F_FirstRunCmd= F_ExcludeFile= F_ExcludePath= F_ForceUpdateFile= F_SaveFile= F_SaveRecover= F_BackUpdate= F_ServerVer= F_ServerList= F_ServerListStr= F_AutoUpdate= F_Usecount2=0 F_Grade=3 F_Vouch= F_VouchIndex= F_GameId=102253 F_UpdateTime=20090704071103 F_IsSetting=True F_DiskType=,115,116,118, F_AutoDown=True F_IsFirst=False F_DownDontDeleteFile=False F_P2PDown=False F_P2PDateTime= F_DisableNoUpdate=False F_DisableUpdateServer=False F_AlwaysUpdate=False F_CD= F_AddDateTime=2009-7-4 7:11:03 F_ServerGroupId= F_HotValue=0.75 F_CreateShortCut=False F_DisableRecover=False F_IsCooperation=False F_StartParameter= LocalPath=F:\网络游戏\诸侯Online\ LocalPath2=8iwKESyAsm2xjzbQvPFVotYyitDiKQs= [5792] F_Id=5792 F_GameName=QQ游戏 F_GameType=,-5, F_PcGroupId=,15,16,18, F_IconIndex=649 F_FromPath=F:\棋牌对战\QQGame\ F_LocalPath= F_Reg= F_RunFile=QQGame.exe F_RunCmd= F_Index= F_UseCount=0 F_LastUseTime=2009-7-4 21:49:57 F_GameInfo= F_IsUpdateForce=0 F_IsUpdateVer=0 F_IsUpdateDate=0 F_Ver= F_Date=0 F_DontDeleteFile=False F_IsUseSize=False F_IsUseDate=False F_ErrorDate=False F_UpdateModel=0 F_FirstWaitRun=False F_FirstWaitTime=0 F_FirstRunFile= F_FirstRunCmd= F_ExcludeFile= F_ExcludePath= F_ForceUpdateFile= F_SaveFile= F_SaveRecover= F_BackUpdate= F_ServerVer= F_ServerList= F_ServerListStr= F_AutoUpdate= F_Usecount2=0 F_Grade=3 F_Vouch= F_VouchIndex= F_GameId=500620 F_UpdateTime=20090704222542 F_IsSetting=True F_DiskType=,115,116,118, F_AutoDown=True F_IsFirst=False F_DownDontDeleteFile=False F_P2PDown=False F_P2PDateTime= F_DisableNoUpdate=False F_DisableUpdateServer=False F_AlwaysUpdate=False F_CD= F_AddDateTime=2009-7-4 21:49:57 F_ServerGroupId= F_HotValue=3.00 F_CreateShortCut=False F_DisableRecover=False F_IsCooperation=False F_StartParameter= LocalPath=F:\棋牌对战\QQ游戏\ LocalPath2=8iwKGjGHkwirlTzQO048glbrug== 这样的话是出错的 |
|
| 第8楼 tireless | 发表于 2009-07-06 11:25 |
| 银牌会员 发帖 1,122 积分 2,025 | |
| 第9楼 wmysbbs | 发表于 2009-07-06 11:52 |
| 初级用户 发帖 52 积分 172 | |
|
谢谢,终于看明白了!!
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |