中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: [娱乐]替换OEM LOGO 上一主题 | 下一主题
quya
高级用户

五星老土


积分 558
发帖 172
注册 2003-2-9
来自 江苏
状态 离线
『楼 主』:  [娱乐]替换OEM LOGO

无聊之下, 编了个批处理替换OEM LOGO, 纯粹娱乐。

http://www.namipan.com/d/a3b24012778ea224ee0f11e4f50269eaa0f1de6107260200  做成自解压文件之后大约100多K。

请高手看看如何改良。主要是显示菜单部分, 如何改进代码让程序自动调整间隙, 以便提高程序的通用性。因为类似的菜单经常会用到。

批处理代码:
@echo off
TITLE 替换OEM图标-quya设计
for /f "skip=1 tokens=1,2*" %%i in (BRAND.INI) do set _%%i=%%k&set __%%i=%%j
:loop
cls
echo 共计29种可供选择:
echo.
echo (1)%_1%        (2)%_2%        (3)%_3%        (4)%_4%        (5)%_5%
echo (6)%_6%        (7)%_7%   (8)%_8%        (9)%_9%      (A)%_A%
echo (B)%_B%     (C)%_C%        (D)%_D%        (E)%_E%        (F)%_F%
echo (G)%_G%        (H)%_H%        (I)%_I%         (J)%_J%(K)%_K%
echo (L)%_L%          (M)%_M%         (N)%_N%        (O)%_O%        (P)%_P%
echo (Q)%_Q%        (R)%_R%         (S)%_S%        (T)%_T%    (U)随机
echo.
set/p var1=请输入代号并回车:
if /i "%var1%"=="U" goto random
call set var2=%%__%var1%%%
call set brand=%%_%var1%%%
if not defined var2 (goto loop) else (goto change)
:random
set /a var1=%random%%%29
set /a var2=%var1%+2
for /f "tokens=2*" %%i in ('findstr /n . BRAND.INI^|findstr "^%var2%:"') do set var2=%%i&set brand=%%j
:change
expand oeminfo.cab /f:%var2%.* . >nul
move /y %var2%.bmp %SYSTEMROOT%\System32\oemlogo.bmp
move /y %var2%.ini %SYSTEMROOT%\System32\oeminfo.ini
echo.
echo 已成功替换成%brand%图标
echo.
pause
brand.ini 内容
序号        目录名                品牌名
1        Acer                宏碁
2        AMOI                夏新
3        ASUS                华硕
4        BenQ                明基
5        COMPAQ                康柏
6        Dell                戴尔
7        Emachines        Emachines
8        Founder                方正
9        FUJI                富士通
A        FUJITSU                富士通-西门子
B        Gateway                Gateway
C        GIGABYTE        技嘉
D        GREATWAL        长城
E        Haier                海尔
F        Hasee                神舟
G        HEDY                七喜
H        HPQ                惠普
I        IBM                IBM
J        LEGEND                联想(旧版)
K        Lenovo                联想
L        LG                LG
M        NEC                NEC
N        Panasoni        松下
P        Pavilion        惠普 Pavilion
O        SAMSUNG                三星
Q        Sony                索尼
R        TCL                TCL
S        TOSHIBA                东芝
T        TSINGHUA        清华同方
oeminfo.cab 包含的文件
ACER.BMP
ACER.INI
AMOI.BMP
AMOI.INI
ASUS.BMP
ASUS.INI
BenQ.bmp
BenQ.ini
COMPAQ.BMP
COMPAQ.INI
DELL.BMP
DELL.INI
EMACHINES.BMP
EMACHINES.INI
Founder.BMP
Founder.INI
FUJI.bmp
FUJI.INI
FUJITSU.BMP
FUJITSU.INI
Gateway.bmp
Gateway.ini
GIGABYTE.BMP
GIGABYTE.INI
GREATWAL.BMP
GREATWAL.INI
HAIER.BMP
HAIER.INI
Hasee.BMP
Hasee.INI
HEDY.BMP
HEDY.INI
HPQ.BMP
HPQ.INI
IBM.BMP
IBM.INI
LEGEND.BMP
LEGEND.INI
LENOVO.BMP
LENOVO.INI
LG.BMP
LG.INI
NEC.BMP
NEC.INI
Panasoni.BMP
Panasoni.INI
PAVILION.BMP
PAVILION.INI
SAMSUNG.BMP
SAMSUNG.INI
Sony.BMP
Sony.INI
TCL.BMP
TCL.INI
TOSHIBA.BMP
TOSHIBA.INI
TSINGHUA.BMP
TSINGHUA.INI
[ Last edited by quya on 2008-8-2 at 08:47 PM ]



我怎么找不到一个比我注册日期早的人? 难道我是传说中的超级管理员? 其实我只是个潜水冠军而已.
2008-8-2 18:35
查看资料  发短消息 网志   编辑帖子  回复  引用回复
luowei14
初级用户




积分 193
发帖 98
注册 2007-1-17
状态 离线
『第 2 楼』:  

这都没人顶。。。。。。。。。?



这家伙很聪明 什么都没留下
2008-8-2 22:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
styusi
初级用户





积分 21
发帖 7
注册 2007-11-17
状态 离线
『第 3 楼』:  

顶下

2008-8-6 12:24
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
knoppix7
银牌会员





积分 1287
发帖 634
注册 2007-5-2
来自 cmd.exe
状态 离线
『第 4 楼』:  

自动调整间隙
貌似{TAB}就可以..

2008-8-6 17:04
查看资料  发短消息 网志   编辑帖子  回复  引用回复
quya
高级用户

五星老土


积分 558
发帖 172
注册 2003-2-9
来自 江苏
状态 离线
『第 5 楼』:  



  Quote:
Originally posted by knoppix7 at 2008-8-6 05:04 PM:
自动调整间隙
貌似{TAB}就可以..

如何具体操作, 我试过直接打TAB, 不行. 你把这个{TAB}写在程序里吗?

谢谢!



我怎么找不到一个比我注册日期早的人? 难道我是传说中的超级管理员? 其实我只是个潜水冠军而已.
2008-8-6 17:11
查看资料  发短消息 网志   编辑帖子  回复  引用回复
ntsu
新手上路





积分 2
发帖 1
注册 2008-9-23
状态 离线
『第 6 楼』:  

l老土的好东西!顶了!

2008-10-9 16:53
查看资料  发短消息 网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 7 楼』:  

老土,好久不见了,关于显示对齐可参照我以下的代码:
@echo off
for /l %%i in (1,1,10) do call,set "kong=%%kong%% "
set "code=12 123 1234 12345 123456 1234567"
for %%i in (%code%) do (
     set "str=%%i%kong%"
     call,echo              #%%str:~,10%%#
)
pause>nul




批处理之家新域名:www.bathome.net
2008-10-9 17:23
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: