![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-07 09:23 |
共 48,040 主题排行 / 350,125 发帖 / 今日 0 篇 / 48,252 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [求助] 如何将命令行输出的某些行赋值于变量? |
| 可打印版本 1,363 / 13 |
| 第1楼 chishingchan | 发表于 2008-01-17 04:27 |
| 银牌会员 发帖 538 积分 1,284 | |
|
[求助] 如何将命令行输出的某些行赋值于变量? 使用命令行
显示出如下信息: USB\ROOT_HUB\4&1A8F66BB&0 : USB Root Hub 请问如何提取这两行: USB\VID_0A81&PID_0205\5&11CCBFD0&0&2 : USB Composite Device 然后赋值给变量 A 和 B ? 请尽量不使用过渡文件,谢谢! [ Last edited by chishingchan on 2008-1-17 at 04:52 AM ] |
|
| 第2楼 fastslz | 发表于 2008-01-17 13:17 |
| 铂金会员 发帖 2,315 积分 5,493 来自 上海 | |
| 第3楼 chishingchan | 发表于 2008-01-17 22:40 |
| 银牌会员 发帖 538 积分 1,284 | |
Originally posted by fastslz at 2008-1-17 01:17 PM: |
|
| 第4楼 dooomer | 发表于 2008-01-18 11:57 |
| 初级用户 发帖 52 积分 109 | |
|
只有2个变量的话,可以这么办:
DEVCON FIND USB\*>ininin.txt for /f "tokens=2 delims=\\" %%A in ('type ininin.txt^|findstr Composite') do set B="%%A" for /f "tokens=2 delims=\\" %%A in ('type ininin.txt^|findstr Composite^|findstr ^/V %B% ') do set A="%%A" echo %A% echo %B% pause 编辑:楼主自行把生成临时文件的重定向给取消吧。这里只是提供一个思路。如果是3个或以上变量,可以依照这个思路再往下写。当然这个办法是比较笨一些了。 [ Last edited by dooomer on 2008-1-18 at 12:03 PM ] |
|
| 第5楼 chishingchan | 发表于 2008-01-18 15:40 |
| 银牌会员 发帖 538 积分 1,284 | |
Originally posted by dooomer at 2008-1-18 11:57 AM: 谢谢!符合题意! 以上代码改成如下: 显示结果: "VID_0A81&PID_0205" 请问如何取消变量值的两侧冒号? |
|
| 第6楼 fastslz | 发表于 2008-01-18 16:08 |
| 铂金会员 发帖 2,315 积分 5,493 来自 上海 | |
| 第7楼 dooomer | 发表于 2008-01-18 16:38 |
| 初级用户 发帖 52 积分 109 | |
|
楼主不用研究我那个笨法子了,楼上高手出手了。我先学习学习。
编辑:楼上能否给讲讲call后面两个参数中间的“\”的作用?不知哪里能找到相关资料呢? [ Last edited by dooomer on 2008-1-18 at 04:45 PM ] |
|
| 第8楼 fastslz | 发表于 2008-01-18 18:21 |
| 铂金会员 发帖 2,315 积分 5,493 来自 上海 | |
|
那个“\”要取决于for tokens=1,2 delims=\参数而定
|
|
| 第9楼 dooomer | 发表于 2008-01-19 12:30 |
| 初级用户 发帖 52 积分 109 | |
|
谢谢,我再仔细看看for的帮助。
|
|
| 第10楼 chishingchan | 发表于 2008-01-19 18:36 |
| 银牌会员 发帖 538 积分 1,284 | |
|
以下代码算是可以了。谢谢以上各位的解答!
显示结果: 0A810205 请按任意键继续. . . 我的意思是找出USB to PS2 x 2 的代码值回写到某个文件内的(破解BeTwin拖机软件用),请问有没有这样的工具可以写入代码到某个文件内的(CMD环境)? |
|
| 第11楼 chishingchan | 发表于 2008-01-21 00:02 |
| 银牌会员 发帖 538 积分 1,284 | |
|
找到一个工具是:change
但不知格式如何,因为按照说明例子列出命令行时,还是提示手工输入参数。 |
|
| 第12楼 fastslz | 发表于 2008-01-21 00:59 |
| 铂金会员 发帖 2,315 积分 5,493 来自 上海 | |
|
我不了解BeTwin,说明下要求吧
如果是USB鼠标你可以devcon find USB\Class_03\* |
|
| 第13楼 chishingchan | 发表于 2008-01-21 22:16 |
| 银牌会员 发帖 538 积分 1,284 | |
|
其实就是找一个支持16进制代码改写二进制文件的一个能够运行在CMD环境下的命令行工具!
只是个例子:hexc filename.exe "04B48328" "0A810205" hexc 好像不支持cmd [ Last edited by chishingchan on 2008-1-21 at 10:21 PM ] |
|
| 第14楼 chishingchan | 发表于 2008-01-26 11:43 |
| 银牌会员 发帖 538 积分 1,284 | |
|
请问这种工具谁能提供一下呀?都很久了,怎么没人理?
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |