[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[系统相关] [已解决]xp系统下,运行1次bat或者vbs代码,就自动将ghost安装到xp启动菜单里面。

本帖最后由 ygqiang 于 2015-1-8 11:05 编辑

[已解决]xp系统下,运行1次bat或者vbs代码,就自动将ghost安装到xp启动菜单里面。
xp启动菜单里面显示单独的一个选项。开机可以选择进入,进入以后直接启动某个版本的ghost
(有3个版本的ghost)(ghost都是在dos环境下运行的)。
(虽然也有很多软件,但需要频繁多次点击鼠标才能装上。而且主要是经常重装xp系统)
如何实现?谢谢

网上看到的资料。。。


@echo off
title 正在判定系统引导器类型……
color 1f
attrib -s -r -h >nul 2>nul
set disname=启动系统维护工具-20110210版
set timeout=3
if exist c:\boot.ini goto ntldr
if exist c:\boot\bcd goto bootmgr  
goto nosys

:ntldr
title 系统启动属于ntldr类型,正在安装工具,请稍等……
type c:\boot.ini| find "\ZHANGHD.LDR" >nul && echo. && title 本工具已经安装,请退出。&& pause && goto clear
echo=>>c:\boot.ini
echo=>>c:\boot.ini
echo C:\ZTPE\GRUB\ZHANGHD.LDR="%disname%">>c:\boot.ini
bootcfg /timeout %timeout% >nul 2>nul
goto clear

:bootmgr
title 系统启动属于bootmgr类型,正在安装工具,请稍等……
set vid=
bcdedit >bcdtemp.txt
type bcdtemp.txt | find "\ZHANGHD.LDR" >nul && echo. && title 本工具已经安装,请退出。&& pause && del ntldr && goto clear
bcdedit  /create /d "%disname%" /application bootsector >vid.ini
for,/f,"tokens=2 delims={",%%i,in (vid.ini) do (
                  set vida=%%i
)
for,/f,"tokens=1 delims=}",%%i,in ("%vida%") do (
                  set vid={%%i}
)
echo %vid%>vid.ini
bcdedit  /set %vid% device boot >nul
bcdedit  /set %vid% path \ZTPE\GRUB\ZHANGHD.LDR >nul
bcdedit  /displayorder %vid% /addlast >nul
bcdedit  /timeout  %timeout% >nul
del ntldr >nul 2>nul
goto clear

:nosys
title C盘没有发现系统引导器,正在安装工具到硬盘,请稍等……
echo 请手动删除C盘的NTLDR,然后重命名文件ZHANG到文件名NTLDR,然后按任意键继续
@pause >nul 2>nul
bootsect /nt52 C:
goto clear

:clear
del ntdetect.com >nul 2>nul
del bootfont.bin >nul 2>nul
del autoexec.bat >nul 2>nul
del config.sys >nul 2>nul
del autoexec.bat >nul 2>nul
del config.sys >nul 2>nul
del bcdtemp.txt >nul 2>nul
del vid.ini >nul 2>nul
del vid.txt >nul 2>nul
del bcd_backup.log >nul 2>nul
del bcd_backup.log1 >nul 2>nul
del bcd_backup.log2 >nul 2>nul
del bcd_backup.log1 >nul 2>nul
attrib +s +r +h   >nul 2>nul
attrib +s +r +h  ZTPE >nul
attrib +s +r +h  ZTPE\DESKTOP.INI >nul
attrib -s -r -h SETUP.CMD
title 安装已经完成,重新启动选择菜单进入系统维护工具。
@pause
del %0




加 echo. 很有必要相当于回车输出一空行,避免加到文件尾部,如果文件结束有空行则看不出来~~
保险起见批处理要以下最少三行内容
attrib -r c:\boot.ini
echo. >>c:\boot.ini
echo C:\wgldr.mbr="一键恢复系统" >>c:\boot.ini

TOP

一个文本文件创造一个世界?没那么简单。

放上未完工的项目,对照下,你做到哪一步了?
『千江有水千江月』千江有水,月映千江;万里无云,万里青天。    http://yu2n.qiniudn.com/

TOP

本帖最后由 yu2n 于 2015-1-8 09:45 编辑

以上是Win7PE版本,支持VHD差分系统备份的恢复,支持Ghost备份的恢复。
另有纯DOS版本,仅仅支持Ghost备份恢复。

……都没做到普通用户都能自行安装、安全使用的地步。
整个过程是按照配置文件全自动进行,给不会用的人就是灾难,毁灭数据只在分秒之中。
『千江有水千江月』千江有水,月映千江;万里无云,万里青天。    http://yu2n.qiniudn.com/

TOP

本帖最后由 ygqiang 于 2015-1-8 16:32 编辑
以上是Win7PE版本,支持VHD差分系统备份的恢复,支持Ghost备份的恢复。
另有纯DOS版本,仅仅支持Ghost备份 ...
yu2n 发表于 2015-1-8 09:40



    复杂问题简单化。

还是利用现成的启动软件吧。

不过是改造成运行1个bat 文件,就全自动安装到xp启动菜单上了。不需要频繁用鼠标手动点击好多次了。
  1. @echo off
  2. if "%1" == "h" goto begin
  3. mshta vbscript:createobject("wscript.shell").run("%~fs0 h",0)(window.close)&&exit
  4. :begin
  5. rem 下边开始写批处代码了
  6. set timeout=3
  7. set "rar=%ProgramFiles%\WinRAR\WinRAR.exe"
  8. if exist c:\boot.ini goto ntldr
  9. exit
  10. :ntldr
  11. bootcfg /timeout %timeout% >nul 2>nul
  12. attrib -s -r -h c:\boot.ini
  13. echo. >>c:\boot.ini
  14. findstr /c:"WDOS工具箱" c:\boot.ini >nul || >>c:\boot.ini echo C:\wzldr="WDOS工具箱"
  15. findstr /c:"通用 PE 工具箱" c:\boot.ini >nul || >>c:\boot.ini echo C:\WXPE\PELOAD=通用 PE 工具箱
  16. if not exist c:\WZBOOT "%rar%" x -y "WDOS工具箱.rar" c:\
  17. if not exist c:\PETools "%rar%" x -y "通用 PE 工具箱.rar" c:\
  18. attrib +s +r +h c:\boot.ini
  19. exit
复制代码

TOP

本帖最后由 yu2n 于 2015-1-8 11:53 编辑

回复 5# ygqiang
题目太大……还是说说你的BAT吧。
如果你自己忘了安装WinRAR……
如果你自己改了系统盘符,系统盘符不是 C: ,是 %SystemDrive% ……
如果你装了两个XP系统……
……
如果是给用户用呢?

感觉细节很多很烦是吧?感觉什么软件都不是尽善尽美了吧?
~自己喜欢就好。

安装脚本,供参考:
  1. cls&@echo off
  2. title %~n0
  3. ::@chcp 950
  4. @echo off
  5. title -- Install Grub4Dos Boot Menu --  [Win XP/2003/NT4]
  6. color 0b
  7. call :_main
  8. :: setlocal enableDelayedExpansion
  9. ::  Get Input
  10. goto :eof
  11. :_main
  12. :: Set Path
  13. call :_set_path
  14. cls
  15. echo.
  16.     echo, Please enter the installation path, the sample is as follows^:
  17.     echo,     Local Drive^:  C^:
  18.     echo,     UNC   Drive^:  \\PC002\C$
  19. echo.
  20.     set /p "wkDir=Input Work Drive:> "
  21.     if not exist "%wkDir%" call :_error_exit  "Work Drive Not Found!"
  22.     if not exist "%wkDir%\windows"  call :_error_exit  "Work Drive Not Found!"
  23.     if not exist "%wkDir%\boot.ini" call :_error_exit  "Work Drive Not Found!"
  24. call :_uninstall
  25. echo.
  26. echo,UnIntall Grub4Dos Done^!  ^$_^$
  27. echo.
  28. set /p "p=> Install Grub4Dos ... " <nul & pause
  29. call :_install
  30. echo.
  31. echo,Install Grub4Dos Done^!  ^^_^^
  32. echo.
  33. set /p "p=> Install 0pe ... " <nul & pause
  34. call :_install_0pe
  35. echo.
  36. echo,Install 0PE Done^!  ^^_^^
  37. echo.
  38. pause
  39. goto :eof
  40. ::  Install
  41. goto :eof
  42. :_install
  43. if not exist "%wkDir%\boot.ini.bak_g4d" (
  44. attrib -a -h -r -s  "%wkDir%\boot.ini"
  45. call :_xcopy  "%wkDir%\boot.ini"  "%wkDir%\boot.ini.bak_g4d"
  46. )
  47. call :_xcopy  "%meDir%\boot.ini"  "%wkDir%\boot.ini"
  48. call :_xcopy  "%meDir%\grldr"  "%wkDir%\grldr"
  49. call :_xcopy  "%meDir%\boot"  "%wkDir%\boot"
  50. goto :eof
  51. goto :eof
  52. :_install_0pe
  53. call :_xcopy  "%meDir%\0pe\0PE.ISO"  "%wkDir%\boot\pe\0PE.ISO"
  54. call :_xcopy  "%meDir%\0pe\0PE.ISO.txt"  "%wkDir%\boot\pe\0PE.ISO.txt"
  55. goto :eof
  56. goto :eof
  57. :_uninstall
  58. if exist "%wkDir%\boot.ini.bak_g4d" (
  59. attrib -a -h -r -s  "%wkDir%\boot.ini"
  60. call :_xcopy  "%wkDir%\boot.ini.bak_g4d"  "%wkDir%\boot.ini"
  61. del /a /f /q "%wkDir%\boot.ini.bak_g4d"
  62. attrib +a +h +r +s  "%wkDir%\boot.ini"
  63. )
  64. if exist "%wkDir%\grldr"   del /a /f /q "%wkDir%\grldr"
  65. if exist "%wkDir%\boot"    rd /s /q  "%wkDir%\boot"
  66. goto :eof
  67.    
  68.    
  69. goto :eof
  70. :_xcopy
  71.   if not exist "%~1" goto :eof
  72.   echo.
  73.   ((pushd "%~1" >nul 2>nul) && (
  74.     echo,[Folder] %~1
  75.     xcopy /d /e /v /c /i /h /r /y /z  "%~1"  "%~2"
  76.     popd
  77.   )) || (
  78. echo,[File] %~1
  79.     copy /v /y /z  "%~1"  "%~2"
  80.   )
  81.   goto :eof
  82.   
  83.   
  84. rem --set Path
  85. goto :eof
  86. :_set_path
  87.   set "meName=%~n0"
  88.   set "meDir=%~dp0"
  89.   set "meDir=%MeDir:~0,-1%"
  90.   set "meLog=%MeDir%\%MeName%.log"
  91.   set "binPath=%MeDir%\bin"
  92.   set "pathBak=%Path%"
  93.   set "path=%pathBak%;%MeDir%;%binPath%"
  94.   goto :eof
  95.   
  96.   
  97. goto :eof
  98. :_error_exit
  99. if "%~1" neq "" (
  100. echo,[Error] %~1
  101. ) else (
  102. if %ERRORLEVEL% neq 0 (echo,[Error] %ERRORLEVEL%)
  103. )
  104. pause
  105. exit
复制代码
文件列表,供参考:
  1. 卷 VBOX_D_DRIVE 的文件夹 PATH 列表
  2. 卷序列号为 7C67-2B0F
  3. E:\DATA\APP\SYSTEM\BOOT_GRUB\GRUB_BOOT
  4. │  boot.ini
  5. │  grldr
  6. │  install_grub4dos.bat
  7. │  
  8. ├─0pe
  9. │      0PE.ISO
  10. │      0PE.ISO.txt
  11. │      
  12. └─boot
  13.     │  HDTune.winpe.7z.exe
  14.     │  
  15.     └─grub
  16.         │  menu.lst
  17.         │  unifont.hex.gz
  18.         │  wallpaper.lzma
  19.         │  
  20.         ├─dos
  21.         │      dir.txt
  22.         │      Maxs.sys
  23.         │      Memdisk.gz
  24.         │      Memtest.iso
  25.         │      ReadMe.txt
  26.         │      
  27.         ├─others.tools
  28.         │      BOOTICEx86v1.321.exe.7z
  29.         │      grldr
  30.         │      grldr.mbr
  31.         │      grldr~pwd_se
  32.         │      WINNT5.X_NTLDR.7z
  33.         │      
  34.         └─pe
  35.                 0PE.iso.log
  36.                 dir.txt
  37.                 ReadMe.txt
  38.                 Ton8PE_V5.0_ISO.txt
  39.                 TonPE.iso
  40.                 V7PXE-g115.zip
  41.                
复制代码
『千江有水千江月』千江有水,月映千江;万里无云,万里青天。    http://yu2n.qiniudn.com/

TOP

呵呵,楼上的很严谨啊。
任何一个项目,到具体实施时会发现问题比想象的多得多,为什么一个工作多年的高工会比刚毕业的大学生工资拿得高,就知识结构而言可能不相上下甚至可能现在出来的毕业生涉及的知识面还稍广一些,但论做事刚毕业的绝对跟高工比差上几条街,这就是经验差别,是一个项目一个项目累积起来的修炼成果,这是一个慢慢成长的过程,参与其中,解决问题不正是乐趣所在吗。

TOP

回复 5# ygqiang
  1. findstr /c:"WDOS工具箱" c:\boot.ini >nul || >>c:\boot.ini echo C:\wzldr="WDOS工具箱"
  2. findstr /c:"通用 PE 工具箱" c:\boot.ini >nul || >>c:\boot.ini echo C:\WXPE\PELOAD=通用 PE 工具箱
复制代码
这样可以避免重复写入

TOP

回复  ygqiang 这样可以避免重复写入
DAIC 发表于 2015-1-8 14:47



    多谢了。。。最终代码。。
  1. @echo off
  2. if "%1" == "h" goto begin
  3. mshta vbscript:createobject("wscript.shell").run("%~fs0 h",0)(window.close)&&exit
  4. :begin
  5. rem 下边开始写批处代码了
  6. set timeout=3
  7. set "rar=%ProgramFiles%\WinRAR\WinRAR.exe"
  8. if exist c:\boot.ini goto ntldr
  9. exit
  10. :ntldr
  11. bootcfg /timeout %timeout% >nul 2>nul
  12. attrib -s -r -h c:\boot.ini
  13. echo. >>c:\boot.ini
  14. findstr /c:"WDOS工具箱" c:\boot.ini >nul || >>c:\boot.ini echo C:\wzldr="WDOS工具箱"
  15. findstr /c:"通用 PE 工具箱" c:\boot.ini >nul || >>c:\boot.ini echo C:\WXPE\PELOAD=通用 PE 工具箱
  16. if not exist c:\WZBOOT "%rar%" x -y "WDOS工具箱.rar" c:\
  17. if not exist c:\PETools "%rar%" x -y "通用 PE 工具箱.rar" c:\
  18. attrib +s +r +h c:\boot.ini
  19. exit
复制代码

TOP

回复 9# ygqiang


    第19行>>左边那个空格是多余的

TOP

windows7的启动菜单项不像XP或2003那样编辑方便,windows7没有boot.ini.虽然可以通过bcdedit编辑和修改,但总感觉不那么方便迅速。为了方便,写了一个批处理用来编辑(包括添加和删除)win7的启动菜单项。

需要注意的是添加的启动菜单项的引导文件名一定不要填错,且文件一定要放到C盘根目录下!

另外,如果你的系统已经直接启用超级管理员(administrator)登录系统了,就不用右键-以管理员身份运行批处理了,直接双击运行即可。win7启用超级管理员(administrator)的方法:在“计算机”上点击鼠标右键选择“管理”,在“系统工具”-“本地用户和组”-“用户”里右键点击“Administrator”,选择属性,把“帐户已禁用”取消,然后退出管理并注销系统,选择Administrator帐户再登录



@echo off
@title 正在编辑bcdedit…By 百味人生http://baivi.com
MODE con COLS=60 LINES=10 &COLOR 0a
setlocal EnableDelayedExpansion
cd c:\windows\system32\
echo.
echo.
set /p name=输入你要添加的启动项名:
set /p path=输入你要添加的启动项的引导文件名:
bcdedit /create /d "%name%" /application bootsector>c:\1.txt
for /f "tokens=2 delims= " %%i in (c:\1.txt) do set dim=%%i

bcdedit /set %dim% device partition=c:
bcdedit /set %dim% path \%path%
bcdedit /displayorder %dim% /addlast

del c:\1.txt
cls
echo.
echo.
echo 正在编辑中,请稍候…
ping /n 4 127.0.0.1>nul 2>nul
cls
echo.
echo 创建了名为"%name%"的启动菜单项
echo.
echo 要删除此启动菜单项请按 1
echo.
echo 保留启动菜单项并退出请按任意键
echo.
echo.



set /p num=输入选项:
if "%num%"=="1" (
goto 1
)
goto 2



:1
bcdedit /delete %dim%>nul
echo 删除完毕!按任意键退出 & pause>nul

:2
set name=
set dim=
set path=
set num=
exit

TOP

本帖最后由 betterplayer 于 2015-12-27 01:28 编辑

楼上的各位兄台,我是新手,对于批处理只懂一点点。现在我有个问题想请教。
我管理一个机房,有50台电脑,现在安装的都是Win7系统。
我在教师机上安装了控制软件(极域电子教室),可以对下面的学生机进行监控等任意操作,也可以让学生机直接运行某个程序。
我现在想作一个批处理放到每台学生机上,在教师机上命令每台学生机运行这个批处理后,每台学生机就能自动像人工点击onekey ghost那样按照我的要求设置好后,重启并转到Ghost进行系统的备份或恢复。

我对编程序不是太懂,所以请求各位的帮助。
现在的问题是:如果使用onekey ghost软件,教师机虽然能远程让学生机运行这个程序,但软件打开后,接下去还需要进行备份或恢复的相关设置,这一些却不能自动处理,需要手动来点了。那样就很麻烦。

有没有办法做一个批处理,运行后能让学生机的启动菜单加一条Ghost选项,且在重启后默认跳到这一条,并自动按设定好的Ghost参数对系统盘(C)进行备份呢?
万分感谢!

TOP

回复 12# betterplayer


    ghost命令即可,另外居然不用网刻

TOP

楼上的各位兄台,我是新手,对于批处理只懂一点点。现在我有个问题想请教。
我管理一个机房,有50台电脑, ...
betterplayer 发表于 2015-12-27 01:25



    不懂,求高手解决。。

TOP

回复  betterplayer


    ghost命令即可,另外居然不用网刻
pcl_test 发表于 2015-12-27 02:48


这位兄弟不理解我的意思。
我是需要在教师机上远程让每台学生机执行一个批处理后,自动在启动菜单上增加默认启动到Ghost的选项,以实现重启后自动备份,且备份到本机上。ghost的命令行我已经知道了,但不知道的是如何添加启动选项,以及让它重启后自动能进入Ghost的工作环境里。

不用网克是因为这50台电脑配置有点差别,而且用网克速度不够快。
网克我也不会用。

TOP

返回列表