中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-09 06:21
47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行
DOS批处理 & 脚本技术(批处理室) » [已解決]將兩多只差別分析檔案不同的批處理程序簡化
可打印版本  838 / 6
第1楼 XZ 发表于 2008-07-20 14:04
初级用户 发帖 65 积分 144 来自 Taiwan
[已解決]將兩多只差別分析檔案不同的批處理程序簡化
請問如下將下面的批處理簡化
當從DB-1~DB-10 這樣就要寫成好大一串
但是差別的只有檔案名稱與輸出的解果
謝謝!!




結果:


[ Last edited by XZ on 2008-7-24 at 09:51 PM ]
第2楼 lxmxn 发表于 2008-07-21 06:29
版主 发帖 4,938 积分 11,386
说实话,没听懂你要做什么。。
第3楼 XZ 发表于 2008-07-22 19:11
初级用户 发帖 65 积分 144 来自 Taiwan
@@a
我表達能力太差了
就是
:Processor-DB-1
for /f "eol=# tokens=1,2,3* delims= usebackq" %%i in ( "%source%\9-DataBase\DB-1-Chip.ini" ) do (
set Match-DB-1-VDID=%%i
set Match-DB-1-Name=%%j
set Match-DB-1-Path=%%k
reg query HKLM\SYSTEM\CurrentControlSet\Enum\PCI | find /i "%%i" >nul 2>nul && goto Match-DB-1
)


:Processor-DB-2
for /f "eol=# tokens=1,2,3* delims= usebackq" %%i in ( "%source%\9-DataBase\DB-2-Display.ini" ) do (
set Match-DB-2-VDID=%%i
set Match-DB-2-Name=%%j
set Match-DB-2-Path=%%k
reg query HKLM\SYSTEM\CurrentControlSet\Enum\PCI | find /i "%%i" >nul 2>nul && goto Match-DB-2
)

差別的地方就是 紅色和藍色的地方
請問要怎樣才能縮短批處理
因為一共有10個左右
DB-1-Chip.ini
DB-2-Display.ini
DB-3-Audio.ini
DB-4-Lan.ini
DB-5-......
DB-6-......
DB-7-......
DB-8-......


勞帆各位解答了
若還有解釋不清楚的煩請告訴我一下
因為這實在是想不出來縮短的方法
只知道可能用 For /F 但是不知道怎了做
謝謝
第4楼 lxmxn 发表于 2008-07-22 21:35
版主 发帖 4,938 积分 11,386


没有测试,不过可以看看for+call 的思路,用call传递可变参数。
第5楼 XZ 发表于 2008-07-24 20:05
初级用户 发帖 65 积分 144 来自 Taiwan
感謝您!!
雖然還是不行
至少我多學到一樣關於FOR的應用
^^

我在想想看
不行的話就直接寫著10行^^"
批處理的學問還真深奧

內容:


結果:


[ Last edited by XZ on 2008-7-24 at 09:18 PM ]
第6楼 XZ 发表于 2008-07-24 21:50
初级用户 发帖 65 积分 144 来自 Taiwan
找到原因了ˇˇ
要把 % 改成 !
可以繼續往下寫了
下次有問題在勞煩幫幫忙了
謝謝

:Match
echo on
echo.
echo. !Match-DB-%~1-VDID:~0,8!^&!Match-DB-%~1-VDID:~-9!
echo. !Match-DB-%~1-Name!
echo. !Match-DB-%~1-Path!
echo. !Match-DB-%~1-Runs!
echo. !Match-DB-%~1-cmds!
goto :eof




[ Last edited by XZ on 2008-7-24 at 09:52 PM ]
第7楼 XZ 发表于 2008-07-24 21:59
初级用户 发帖 65 积分 144 来自 Taiwan
順道一問

這兩行一樣都是帶 DB-%~1
出來的結果怎麼會不一樣

FOR底下是全名DB-1-Chip.ini
FOR之後的SET卻只有 DB-1
若我要取值至 DB-1-Chip 該如何做呢?
謝謝

語法
for /f "eol=# tokens=1,2,3,4* delims= usebackq" %%i in ( "%source%\9-DataBase\!DB-%~1!" ) do (
set Match-DB-%~1-VDID=%%i

結果
echo !DB-1!
DB-1-Chip.ini

for /F "eol=# tokens=1,2,3,4* delims= usebackq" %i in ("C:\Documents and Settings\misdrv\桌面\_In
stallPubDriver_\9-DataBase\!DB-1!") do (
set Match-DB-1-VDID=%i



目前我只知道


會輸出


[ Last edited by XZ on 2008-7-24 at 10:17 PM ]
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023