无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 2720|回复: 4
打印 上一主题 下一主题

请批处理高手能否把这2个批处理帮忙合并成1个?

[复制链接]
跳转到指定楼层
1#
发表于 2008-9-6 07:30:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
两个批处理内容:
1.
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\AeroFox R&D\System\Markets\SH]
"MainIndex"="000001"
"Forbiden"=""
[HKEY_CURRENT_USER\Software\AeroFox R&D\System\Settings]
"StatusBarStks"="SH000001;SZ399001"

2.
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\AeroFox R&D\System\Markets\SH]
"MainIndex"="1A0001"
"Forbiden"=""
[HKEY_CURRENT_USER\Software\AeroFox R&D\System\Settings]
"StatusBarStks"="SH1A0001;SZ399001"


合并成1个后能否改成下面画面:


        安装系统
            [1]安装接口文件
           [2]卸载接口文件
              [3]退出安装系统

        请选择要进行的操作 (1/2/Q) ,然后按回车:
2#
 楼主| 发表于 2008-9-6 07:39:57 | 只看该作者

回复 #1 qazxswa 的帖子

合并后后的批处理就像下面这个样子:

@Echo Off

color 1E

Set Prog=      Windows PE  安装系统
Set L1=              ╭══════════════════╮
Set L2=              ║                  ║
Set L3=           ╭══┤ %Prog%       ├══╮
Set L4=           ║  ║                  ║  ║
Set L5=           ║  ╰══════════════════╯  ║
Set L6=           ║                        ║
Set L7=           ╟════════════════════════╢
Set L8=           ╰────────────────────────╯

Title %Prog%
Set RP=RP
For %%I In (Z Y X W V U T S R Q P O N M L K J I H G F E D C) Do If Exist %%I:\BOOT.INI Set RP=%%I:

If %RP%==RP Goto NoSys
If Exist %RP%\PELDR Goto :EXISTPE
If Exist %RP%\AVLDR Goto :EXISTPE
FIND /I "C:\AVLDR" %RP%\BOOT.INI >NUL
If %Errorlevel%==0 Goto :EXISTPE
Goto Start

:EXISTPE
CLS
Title %Prog%
Echo.
Echo %L1%
Echo %L2%
Echo %L3%
Echo %L4%
Echo %L5%
Echo %L6%
Echo               │                                                │
Echo          │  检测到您机器中已经安装了 WinPE,您要卸载吗?  │
Echo               │                                                │
Echo          │  [ 1 ] 卸载原有的 WinPE,并重新安装 WinPE    │
Echo               │                                                │
Echo          │  [ 2 ] 卸载原有的 WinPE,并删除原有 WinPE    │
Echo               │                                                │
Echo         │  [ Q ] 退出安装系统              │
Echo               │                                                │
Echo %L7%
Echo %L8%


Echo.
Set Choice=
Set /P Choice=             请选择要进行的操作 (1/2/Q) ,然后按回车:
If %Choice%Choice==Choice Goto :EXISTPE
If Not '%Choice%'=='' SET Choice=%Choice:~0,1%
If /I '%Choice%'=='1' SET Choi=1&&GOTO :UnInstall
If /I '%Choice%'=='2' GOTO :UnInstall
If /I '%Choice%'=='Q' EXIT
Goto :EXISTPE

:UnInstall
If Exist %RP%\AVLDR ATTRIB -S -H -R %RP%\AVLDR && Del /Q /F %RP%\AVLDR >NUL
If Exist %RP%\PELDR ATTRIB -S -H -R %RP%\PELDR && Del /Q /F %RP%\PELDR >NUL
If Exist %RP%\WINNT.SIF ATTRIB -S -H -R %RP%\WINNT.SIF && Del /Q /F %RP%\WINNT.SIF >NUL
If Exist %RP%\WINPE.ISO ATTRIB -S -H -R %RP%\WINPE.ISO && Del /Q /F %RP%\WINPE.ISO >NUL
If Exist %RP%\WINPE.IMG ATTRIB -S -H -R %RP%\WINPE.IMG && Del /Q /F %RP%\WINPE.IMG >NUL



Attrib %RP%\BOOT.INI -S -H -R
If Exist %RP%\BOOT.BAK (
        Attrib %RP%\BOOT.BAK -S -H -R
        TYPE %RP%\BOOT.BAK|FIND /I /V "C:\AVLDR">%RP%\BOOT.INI
) Else (
        Copy %RP%\BOOT.INI %RP%\BOOT.BAK /Y>NUL
        TYPE %RP%\BOOT.BAK|FIND /I /V "C:\AVLDR">%RP%\BOOT.INI
)
Copy %RP%\BOOT.INI %RP%\BOOT.BAK /Y>NUL
If Exist %RP%\BOOT.BAK ATTRIB -S -H -R %RP%\BOOT.BAK&&Del %RP%\BOOT.BAK>NUL
Attrib %RP%\BOOT.INI +S +H +R
FOR %%I IN (Z: Y: W: V: U: T: S: R: Q: P: O: N: M: L: K: J: I: H: G: F: E: D: C:) DO IF EXIST %%I\GHOST~1 Set ddd=%%I
FOR %%I IN (Z: Y: W: V: U: T: S: R: Q: P: O: N: M: L: K: J: I: H: G: F: E: D: C:) DO IF EXIST %%I\GHOST Set eee=%%I
If Not "%eee%"=="" goto :ghostq
If Not "%ddd%"=="" goto :ghostq

:UninstallOK
Title %Prog%
If %Choi%Choi==1Choi (Echo.&&Echo              卸载完成,请按任意键准备安装 …… &&PAUSE>NUL&&Goto Start)
Echo.&&Echo              卸载完成,请按任意键退出 ……
PAUSE>NUL
Exit

:ghostq
Set ddd=%ddd:~0,1%:
set Ugh=
Echo.
set /P Ugh=              [删除GHOST备份目录和文件 按 Y]    [不删除 请直接回车]  
if /I "%Ugh%" == "Y" goto :ghostd

goto UninstallOK

:ghostd
If Exist %ddd%\GHOST~1 rd %ddd%\GHOST~1 /s/q
If Exist %eee%\GHOST rd %eee%\GHOST /s/q

goto UninstallOK


:Start
CLS
Title %Prog%
Echo.
Echo %L1%
Echo %L2%
Echo %L3%
Echo %L4%
Echo %L5%
Echo %L6%
Echo               │                                                │
Echo         │   [ 1 ] 安装 WinPE 到 C 盘并添加启动菜单      │
Echo               │                                                │
Echo         │   [ Q ] 退出安装系统             │
Echo               │                                                │
Echo %L7%
Echo %L8%


Echo.
Set Choice=
Set /P Choice=            请选择要进行的操作 (1/Q) ,然后按回车:
If %Choice%Choice==Choice Goto Start
If Not '%Choice%'=='' SET Choice=%Choice:~0,1%
If /I '%Choice%'=='1' GOTO Install
If /I '%Choice%'=='q' EXIT
Goto Start

:Install
Title %Prog%
If Exist %RP%\WINNT.SIF Del /Q /F %RP%\WINNT.SIF >NUL
Echo.
Echo 正在复制文件,请稍候 ……
If Exist AVLDR Copy AVLDR %RP%\ /Y >NUL
If Exist PELDR Copy PELDR %RP%\ /Y >NUL
If Exist WINNT.SIF Copy WINNT.SIF %RP%\ /Y >NUL
If Exist winpe.is_ Expand winpe.is_ %RP%\WINPE.ISO >NUL
If Exist WINPE.IM_ Expand WINPE.IM_ %RP%\WINPE.IMG >NUL


ATTRIB -S -H -R %RP%\BOOT.INI
ECHO %RP%\AVLDR= "Microsoft Windows PE "  >>%RP%\boot.ini
BOOTCFG /Timeout 3

If Exist %RP%\BOOT.INI ATTRIB +S +H +R %RP%\BOOT.INI >NUL
If Exist %RP%\AVLDR ATTRIB +S +H +R %RP%\AVLDR
If Exist %RP%\PELDR ATTRIB +S +H +R %RP%\PELDR
If Exist %RP%\WINNT.SIF ATTRIB +S +H +R %RP%\WINNT.SIF
If Exist %RP%\WINPE.ISO ATTRIB +S +H +R %RP%\WINPE.ISO
If Exist %RP%\WINPE.IMG ATTRIB +S +H +R %RP%\WINPE.IMG



Goto :SUCCESS

:NoSys
Echo.
Echo.
Echo             您机器中没有安装操作系统
Echo.
Echo             请确认后再执行本安装程序
Echo.
Echo             请按任意键退出 ……
PAUSE >NUL
Exit

:SUCCESS
Title %Prog%

Echo.
Echo             安装完成!请按任意键退出 ……
PAUSE >NUL
Exit
回复

使用道具 举报

3#
发表于 2008-9-6 18:19:35 | 只看该作者
原帖由 qazxswa 于 2008-9-6 07:30 发表
两个批处理内容:
1.
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\AeroFox R&D\System\Markets\SH]
"MainIndex"="000001"
"Forbiden"=""
[HKEY_CURRENT_USER\Software\AeroFox R ...



你第一个文件和第二个文件,哪个是安装的?都不说怎么改?
回复

使用道具 举报

4#
发表于 2008-9-6 20:40:22 | 只看该作者
  1. @Echo Off
  2. color 1E
  3. title qazxswa
  4. Set Prog=      接口安装程序
  5. Set L1=              ╭══════════════════╮
  6. Set L2=              ║                  ║
  7. Set L3=           ╭══┤%Prog% forqazxswa       ├══╮
  8. Set L4=           ║  ║                  ║  ║
  9. Set L5=           ║  ╰══════════════════╯  ║
  10. Set L6=           ║                        ║
  11. Set L7=           ╟════════════════════════╢
  12. Set L8=           ║                        ║
  13. Set L9=           ║                        ║
  14. Set L10=            ║                        ║
  15. Set L11=            ╰────────────────────────╯

  16. :begin
  17. cls
  18. echo %L1%
  19. echo %L2%
  20. echo %L3%
  21. echo %L4%
  22. echo %L5%
  23. echo %L6%
  24. echo %L7%
  25. echo               ║                 [ 1 ] 安装接口                ║
  26. echo %L8%
  27. echo               ║                 [ 2 ] 卸载接口                ║
  28. echo %L9%            
  29. echo               ║                 [ Q ] 退出程序                ║
  30. echo %L10%  
  31. echo %L11%  
  32. set  Cho=
  33. Set /P Cho=   请选择要进行的操作 (1/2/Q) ,然后按回车:
  34. set Cho=%Cho:~0,1%
  35. If /I '%Cho%'=='1' GOTO :setup
  36. If /I '%Cho%'=='2' GOTO :UnInst
  37. If /I '%Cho%'=='Q' EXIT
  38. exist

  39. :setup
  40. reg add "HKCU\Software\AeroFox R&D\System\Markets\SH" /f /v "MainIndex" /t REG_SZ /d "000001"
  41. reg add "HKCU\Software\AeroFox R&D\System\Markets\SH" /f /v "Forbiden" /t REG_SZ /d ""
  42. reg add "HKCU\Software\AeroFox R&D\System\Settings" /f /v "StatusBarStks" /t REG_SZ /d "SH000001;SZ399001"
  43. pause>nul
  44. goto begin

  45. :Uninst
  46. reg add "HKCU\Software\AeroFox R&D\System\Markets\SH" /f /v "MainIndex" /t REG_SZ /d "1A0001"
  47. reg add "HKCU\Software\AeroFox R&D\System\Markets\SH" /f /v "Forbiden" /t REG_SZ /d ""
  48. reg add "HKCU\Software\AeroFox R&D\System\Settings" /f /v "StatusBarStks" /t REG_SZ /d "SH1A0001;SZ399001"
  49. pause>nul
  50. goto begin
复制代码


按楼主要求,1为安装,2为卸载,如果相反请交换setup和Uninst标签!!!!
回复

使用道具 举报

5#
发表于 2008-9-7 00:56:56 | 只看该作者
lz的两个注册表文件(非批处理)都是向注册表写入数据,并且是一样的,仅MainIndex不同(这个貌似可以忽略),于卸载有何关系?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-15 21:50

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表