![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-08 15:24 |
共 47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 求助从文本中逐行提取代码,并分别赋值于不同的变量中 |
| 可打印版本 1,224 / 7 |
| 第1楼 qq11211 | 发表于 2006-12-19 02:41 |
| 初级用户 发帖 15 积分 42 | |
|
求助从文本中逐行提取代码,并分别赋值于不同的变量中 文本test.txt 内容
"gl3Gy2hUKeS.9qdcjgkWtA--.chatCategories"=dword:45836378 "AhUunOLNkbj5gjiC9Cr57Q--.chatCategories"=dword:457707ca "kl3Gy2thKeSr9qdcjgjWtA--.chatCategories"=dword:458363ss "lhUunOfffbj5gjC9Cgk57Q--.chatCategories"=dword:457707gh "..........." 说明:文本内行数不固定 ,一般<6 行 问题:如何将每行中“ =”号左边引号内的全部代码 分别 赋值到变量1,变量2,变量3,变量n? 运行批处理文件后,最后的结果是 (=号后面的内容) %变量1%=gl3Gy2hUKeS.9qdcjgkWtA--.chatCategories %变量2%=AhUunOLNkbj5gjiC9Cr57Q--.chatCategories %变量3%=gl3Gy2thKeSr9qdcjgjWtA--.chatCategories %变量4%=AUunOfffbj5gbjiC9Cr57Q--.chatCategories %变量n%=n......... 查看变量的结果是 echo %变量1% > test2.txt echo %变量2% >> test2.txt echo %变量3% >> test2.txt echo %变量4% >> test2.txt echo %变量n% >> test2.txt test2.txt 的内容 gl3Gy2hUKeS.9qdcjgkWtA--.chatCategories AhUunOLNkbj5gjiC9Cr57Q--.chatCategories gl3Gy2thKeSr9qdcjgjWtA--.chatCategories AUunOfffbj5gbjiC9Cgr57Q--.chatCategories n......... 请各位指教,谢谢! 此贴昨天发错了地方,请谅解 |
|
| 第2楼 namejm | 发表于 2006-12-19 03:00 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
假设等号左边的内容没有特殊符号的话(具体是管道符号和重定向符号),可以使用如下代码:
|
|
| 第3楼 qq11211 | 发表于 2006-12-19 05:47 |
| 初级用户 发帖 15 积分 42 | |
|
再次谢谢版主,我的批处理如下,中间是您的代码,我的最终目的是要把变量赋值到文件名,copy语句又如何循环,麻烦您帮我搞定吧。我是初学者,基本上是不懂的那一行的,您就多费心顺便说明一下。
@echo off @regedit /e room.reg "HKEY_CURRENT_USER\Software\pager\timestamps" @type room.reg | find ".chatCategories" > room.txt @FOR /F "delims== " %%i in (room.txt) do @set nema=%%~i ---------------------------------------- set num=0 for /f "delims==" %%i in (test.txt) do call :set_var %%i pause goto :eof :set_var set var=%1 set "var=%var:~1,-1%" set /a num+=1 echo "var%num%=%var%" goto :eof ---------------------------------------- @copy room d:\room\%nema1%.xml @copy room d:\room\%nema2%.xml @copy room d:\room\%nema3%.xml @copy room d:\room\%nema4%.xml |
|
| 第4楼 redtek | 发表于 2006-12-19 06:03 |
| 金牌会员 发帖 1,147 积分 2,902 | |
|
qq11211兄下面代码:
可以简写成下面方式: |
|
| 第5楼 qq11211 | 发表于 2006-12-19 09:11 |
| 初级用户 发帖 15 积分 42 | |
|
根据namejm版主代码,修改为
@echo off @regedit /e room.reg "HKEY_CURRENT_USER\Software\pager\timestamps" @type room.reg | find ".chatCategories" > room.txt for /f "delims==" %%i in ( room.txt) do call :set_var %%i goto :eof :set_var set var=%1 @copy room d:\room\%var%.xml goto :eof 运行后就是我要得结果,但不知道 for /f "delims==" %%i in ( room.txt) do call :set_var %%i goto :eof :set_var 应该如何理解,请版主辛苦解释一下,另外是否还有更简单的办法,请各位指点。 [ Last edited by qq11211 on 2006-12-19 at 09:16 AM ] |
|
| 第6楼 qq11211 | 发表于 2006-12-19 09:12 |
| 初级用户 发帖 15 积分 42 | |
|
谢谢redtek的指点
|
|
| 第7楼 261621998 | 发表于 2008-05-19 22:13 |
| 初级用户 发帖 23 积分 32 | |
|
找到了找到了找到了
|
|
| 第8楼 dslz666 | 发表于 2008-05-19 23:43 |
| 中级用户 发帖 117 积分 233 | |
|
谢谢了,正在找这方面的批处理
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |