|
发表于 2018-11-6 14:56:57
|
显示全部楼层
供参考
- @Echo Off
- :menu
- COLOR 2F
- Set Prog=PXE 网络Ghost 快捷调用
- Set L1=―――――――――――――――――――――――――――
- Set L2= %Prog%
- Set L3= 仅供网友们交流 翻版不究
- Set L4= 注意: !!!多块硬盘恢复操作有风险,请谨慎操作!!!
- Set L5= By 哈小福 20180904
- Title %Prog%
- ::if exist config.ini del /f /q config.ini
- If Not Exist GhostSrv.exe Goto Err0
- If Not Exist TinyPxe.exe Goto Err1
- tasklist|find /i "GhostSrv.exe" >NUL || Goto TP
- Goto Err2
- :TP
- tasklist|find /i "TinyPxe.exe" >NUL || Goto NetMode
- Goto Err2
- :NetMode
- CLS
- Title %Prog%
- Echo.
- Echo %L1%
- Echo.
- Echo %L2%
- Echo.
- Echo %L1%
- Echo.
- Echo %L4%
- Echo.
- Echo %L3%
- Echo.
- Echo %L5%
- Echo.
- Echo %L1%
- Echo.
- Echo 请选择调用方式:
- Echo.
- Echo [H] Bios模式:Grub2 Http网启(Bios模式推荐)
- Echo [T] Bios模式:Grub Tftp网启 (兼容性最好)
- Echo [K] Bios模式:IPXE Http网启(适合较新主机)
- Echo [E] EFI模式:IPXE EFI 网启【注意分区顺序】
- Echo [Q] 退出
- Echo.
- Echo %L1%
- Echo.
- Set Choice=
- Set /P Choice= 请选择要进行的操作 (H/T/K/E/Q) ,然后按回车:
- If "%Choice%"=="" Goto Start
- ::If Not "%Choice%"=="" Set Choice=%Choice:~0,1%
- If /I "%Choice%"=="H" Goto NetModeHttp
- If /I "%Choice%"=="T" Goto NetModetftp
- If /I "%Choice%"=="K" Goto NetModeIPXE
- If /I "%Choice%"=="E" Goto NetModeUEFI
- If /I "%Choice%"=="Q" Exit
- Goto NetMode
- Set con_proxydhcp=
- Set con_http=
- :NetModeHttp
- Set NetRunfile=grub2httpghost
- Set con_httpd=1
- Goto Config
- :NetModetftp
- Set NetRunfile=g4dghost
- Set con_httpd=0
- Goto Config
- :NetModeIPXE
- Set NetRunfile=ipxeghost.kpxe
- Set con_httpd=1
- Goto Config
- :NetModeUEFI
- Set NetRunfile=ipxeghost.efi
- Set con_httpd=1
- Goto Config
- :Config
- Echo [dhcp] >config.ini
- Echo proxydhcp=0 >>config.ini
- Echo bind=1 >>config.ini
- Echo filename=%NetRunfile% >>config.ini
- Echo poolsize=255 >>config.ini
- Echo binl=0 >>config.ini
- Echo httpd=%con_httpd% >>config.ini
- Echo dnsd=0 >>config.ini
- Echo smb=0 >>config.ini
- Echo [frmDHCPServer] >>config.ini
- :Start
- CLS
- Title %Prog%
- Echo.
- Echo %L1%
- Echo.
- Echo %L2%
- Echo.
- Echo %L1%
- Echo.
- Echo %L4%
- Echo.
- Echo %L3%
- Echo.
- Echo %L5%
- Echo.
- Echo %L1%
- Echo.
- Echo 请选择调用方式:
- Echo.
- Echo [Z] 制作镜像
- Echo [H] 恢复镜像
- Echo [M] 返回主菜单
- Echo [Q] 退出
- Echo.
- Echo %L1%
- Echo.
- Set Choice=
- Set /P Choice= 请选择要进行的操作 (Z/H/M/Q) ,然后按回车:
- If "%Choice%"=="" Goto Start
- ::If Not "%Choice%"=="" Set Choice=%Choice:~0,1%
- If /I "%Choice%"=="Z" Goto Backup
- If /I "%Choice%"=="H" Goto Ghostfile
- If /I "%Choice%"=="M" Goto NetMode
- If /I "%Choice%"=="Q" Exit
- Goto Start
- :Backup
- CLS
- Title %Prog%——制作镜像
- Echo.
- Echo %L1%
- Echo.
- Echo %L2%
- Echo.
- Echo %L1%
- Echo.
- Echo %L4%
- Echo.
- Echo %L3%
- Echo.
- Echo %L5%
- Echo.
- Echo %L1%
- Echo.
- Echo 请选择制作镜像方式:
- Echo.
- Echo [P] 制作分区镜像 (pan.gho)
- Echo [D] 制作全盘镜像 (Disk.gho)
- Echo [M] 返回上一级菜单
- Echo [Q] 退出
- Echo.
- Echo %L1%
- Echo.
- Echo 注意: 1、生成的镜像保存路径为当前脚本文件夹
- Echo 2、防止文件被覆盖文件名会加上6位随机数
- Echo.
- Echo %L1%
- Echo.
- Set ZChoice=
- Set /P ZChoice= 请选择要进行的操作 (P/D/M/Q) ,然后按回车:
- If "%ZChoice%"=="" Goto Backup
- ::If Not "%ZChoice%"=="" Set ZChoice=%ZChoice:~0,1%
- If /I "%ZChoice%"=="P" Goto ZDisk
- If /I "%ZChoice%"=="D" Goto ZDisk
- If /I "%ZChoice%"=="M" Goto Start
- If /I "%ZChoice%"=="Q" Exit
- Goto Backup
- :ZDisk
- CLS
- Title %Prog%——制作镜像
- Echo.
- Echo %L1%
- Echo.
- Echo %L2%
- Echo.
- Echo %L1%
- Echo.
- Echo %L4%
- Echo.
- Echo %L3%
- Echo.
- Echo %L5%
- Echo.
- Echo %L1%
- Echo.
- Echo 请选择制作镜像方式:
- Echo.
- Echo [1-9] 对第几块硬盘操作
- Echo [M] 返回上一级菜单
- Echo [Q] 退出
- Echo.
- Echo %L1%
- Echo.
- Echo 注意: 1、生成的镜像保存路径为当前脚本文件夹
- Echo 2、防止文件被覆盖文件名会加上6位随机数
- Echo.
- Echo %L1%
- Echo.
- Set DChoice=
- Set /P DChoice= 请选择要进行的操作 ([1-9]/M/Q) ,然后按回车:
- If "%DChoice%"=="" Goto ZDisk
- ::If Not "%DChoice%"=="" Set DChoice=%DChoice:~0,1%
- If /I "%DChoice%"=="M" Goto ZDisk
- If /I "%DChoice%"=="Q" Exit
- ::( echo %DChoice%|findstr "^[1-9]$">nul && goto Backup_disk ) || Goto ZDisk
- If /I "%ZChoice%"=="D" (( echo %DChoice%|findstr "^[1-9]$">nul && goto Backup_disk ) || Goto ZDisk)
- If /I "%ZChoice%"=="P" (( echo %DChoice%|findstr "^[1-9]$">nul && goto ZPan ) || Goto ZDisk)
- :Backup_disk
- CLS
- set /a r1=%random%%%100000
- set /a r2=%random%%%100000
- set /a id=%r1%*%r2%%%1000000
- set id=00000%id%
- set num6=%id:~-6%
- Title %Prog%——制作镜像
- Echo.
- Echo %L1%
- Echo.
- Echo %L2%
- Echo.
- Echo %L1%
- Echo.
- Echo %L4%
- Echo.
- Echo %L3%
- Echo.
- Echo %L5%
- Echo.
- Echo %L1%
- Echo.
- Echo 已选的第%DChoice%块硬盘
- Echo.
- Echo 备份路径文件名:
- Echo.
- Echo %~dp0gho\Disk\Disk_%num6%.gho
- Echo.
- Echo %L1%
- Echo.
- Echo 请确认开始:
- Echo.
- Echo [Y] 开始Ghost备份
- Echo [M] 返回主菜单
- Echo [Q] 退出
- Echo.
- Echo %L1%
- Echo.
- Set SChoice=
- Set /P SChoice= 请选择要进行的操作 (Y/M/Q) ,然后按回车:
- If "%SChoice%"=="" Goto Backup_disk
- If /I "%SChoice%"=="Y" Goto Backup_Dstart
- If /I "%SChoice%"=="M" Goto NetMode
- If /I "%SChoice%"=="Q" Exit
- Goto Backup_disk
- :Backup_Dstart
- start GhostSrv.exe %~dp0gho\Disk\Disk_%num6%.gho mousedos -d -disk%DChoice% -g" -rb -z9 -sure"
- start TinyPxe.exe /start
- Exit
- :ZPan
- CLS
- Title %Prog%——制作镜像
- Echo.
- Echo %L1%
- Echo.
- Echo %L2%
- Echo.
- Echo %L1%
- Echo.
- Echo %L4%
- Echo.
- Echo %L3%
- Echo.
- Echo %L5%
- Echo.
- Echo %L1%
- Echo.
- Echo 已选的第%DChoice%块硬盘
- Echo.
- Echo %L1%
- Echo.
- Echo 请选择制作镜像方式:
- Echo.
- Echo [1-9] 对第几个分区操作
- Echo [M] 返回上一级菜单
- Echo [Q] 退出
- Echo.
- Echo %L1%
- Echo.
- Echo 注意: 1、生成的镜像保存路径为当前脚本文件夹
- Echo 2、防止文件被覆盖文件名会加上6位随机数
- Echo.
- Echo %L1%
- Echo.
- Set PChoice=
- Set /P PChoice= 请选择要进行的操作 ([1-9]/M/Q) ,然后按回车:
- If "%PChoice%"=="" Goto ZDisk
- ::If Not "%PChoice%"=="" Set PChoice=%PChoice:~0,1%
- If /I "%PChoice%"=="M" Goto ZDisk
- If /I "%PChoice%"=="Q" Exit
- ( echo %PChoice%|findstr "^[1-9]$">nul && goto Backup_pan ) || Goto ZPan
- :Backup_pan
- CLS
- set /a r1=%random%%%100000
- set /a r2=%random%%%100000
- set /a id=%r1%*%r2%%%1000000
- set id=00000%id%
- set num6=%id:~-6%
- Title %Prog%——制作镜像
- Echo.
- Echo %L1%
- Echo.
- Echo %L2%
- Echo.
- Echo %L1%
- Echo.
- Echo %L4%
- Echo.
- Echo %L3%
- Echo.
- Echo %L5%
- Echo.
- Echo %L1%
- Echo.
- Echo 已选的第%DChoice%块硬盘的第%PChoice%分区
- Echo.
- Echo 备份路径文件名:
- Echo.
- Echo %~dp0gho\Pan\Pan_%num6%.gho
- Echo.
- Echo %L1%
- Echo.
- Echo 请确认开始:
- Echo.
- Echo [Y] 开始Ghost备份
- Echo [M] 返回主菜单
- Echo [Q] 退出
- Echo.
- Echo %L1%
- Echo.
- Set SChoice=
- Set /P SChoice= 请选择要进行的操作 (Y/M/Q) ,然后按回车:
- If "%SChoice%"=="" Goto Backup_pan
- If /I "%SChoice%"=="Y" Goto Backup_Pstart
- If /I "%SChoice%"=="M" Goto NetMode
- If /I "%SChoice%"=="Q" Exit
- Goto Backup_pan
- :Backup_Pstart
- start GhostSrv.exe %~dp0gho\Pan\Pan_%num6%.gho mousedos -d -p -disk%DChoice% -part%PChoice% -g" -rb -z9 -sure"
- start TinyPxe.exe /start
- Exit
- :Ghostfile
- CLS
- Title %Prog%——恢复镜像
- Echo.
- Echo %L1%
- Echo.
- Echo %L2%
- Echo.
- Echo %L1%
- Echo.
- Echo %L4%
- Echo.
- Echo %L3%
- Echo.
- Echo %L5%
- Echo.
- Echo %L1%
- Echo.
- Echo 请拖入要恢复的GHO文件,或:
- Echo.
- Echo [M] 返回上一级菜单
- Echo [Q] 退出
- Echo.
- Echo %L1%
- Echo.
- Set ghofile=
- Set /P ghofile= 请拖入要恢复的GHO文件,并按回车继续:
- If "%ghofile%"=="" Goto Ghostfile
- If /I "%ghofile%"=="M" Goto Start
- If /I "%ghofile%"=="Q" Exit
- If Not Exist %ghofile% Goto Ghostfile
- If /I "%ghofile:~-4,4%"==".gho" (Goto Restore) else (Goto Ghostfile)
- :Restore
- CLS
- Title %Prog%——恢复镜像
- Echo.
- Echo %L1%
- Echo.
- Echo %L2%
- Echo.
- Echo %L1%
- Echo.
- Echo %L4%
- Echo.
- Echo %L3%
- Echo.
- Echo %L5%
- Echo.
- Echo %L1%
- Echo.
- Echo 已选的Ghost文件:
- Echo.
- Echo %ghofile%
- Echo.
- Echo %L1%
- Echo.
- Echo 请选择恢复镜像方式:
- Echo.
- Echo [P] 恢复镜像到硬盘分区
- Echo [D] 恢复全盘镜像到硬盘
- Echo [M] 返回上一级菜单
- Echo [Q] 退出
- Echo.
- Echo %L1%
- Echo.
- Set RChoice=
- Set /P RChoice= 请选择要进行的操作 (P/D/M/Q) ,然后按回车:
- If "%RChoice%"=="" Goto Restore
- ::If Not "%RChoice%"=="" Set RChoice=%RChoice:~0,1%
- If /I "%RChoice%"=="P" Goto RDisk
- If /I "%RChoice%"=="D" Goto RDisk
- If /I "%RChoice%"=="M" Goto Ghostfile
- If /I "%RChoice%"=="Q" Exit
- Goto Restore
- :RDisk
- CLS
- Title %Prog%——恢复镜像
- Echo.
- Echo %L1%
- Echo.
- Echo %L2%
- Echo.
- Echo %L1%
- Echo.
- Echo %L4%
- Echo.
- Echo %L3%
- Echo.
- Echo %L5%
- Echo.
- Echo %L1%
- Echo.
- Echo 已选的Ghost文件:
- Echo.
- Echo %ghofile%
- Echo.
- Echo %L1%
- Echo.
- Echo 请选择恢复镜像方式:
- Echo.
- Echo [1-9] 对第几块硬盘恢复
- Echo [S] 重新选择Ghost文件
- Echo [M] 返回上一级菜单
- Echo [Q] 退出
- Echo.
- Echo %L1%
- Echo.
- Set DChoice=
- Set /P DChoice= 请选择要进行的操作 ([1-9]/S/M/Q) ,然后按回车:
- If "%DChoice%"=="" Goto RDisk
- ::If Not "%DChoice%"=="" Set DChoice=%DChoice:~0,1%
- If /I "%DChoice%"=="S" Goto Ghostfile
- If /I "%DChoice%"=="M" Goto Restore
- ::( echo %DChoice%|findstr "^[1-9]$">nul && goto Restore_Disk ) || Goto RDisk
- If /I "%DChoice%"=="Q" Exit
- If /I "%RChoice%"=="D" (( echo %DChoice%|findstr "^[1-9]$">nul && goto Restore_Disk ) || Goto RDisk)
- If /I "%RChoice%"=="P" (( echo %DChoice%|findstr "^[1-9]$">nul && goto RPan ) || Goto RDisk)
- :Restore_Disk
- CLS
- Title %Prog%——恢复镜像
- Echo.
- Echo %L1%
- Echo.
- Echo %L2%
- Echo.
- Echo %L1%
- Echo.
- Echo %L4%
- Echo.
- Echo %L3%
- Echo.
- Echo %L5%
- Echo.
- Echo %L1%
- Echo.
- Echo 已选的第%DChoice%块硬盘
- Echo.
- Echo %L1%
- Echo.
- Echo 请确认开始:
- Echo.
- Echo [Y] 开始Ghost网刻
- Echo [M] 返回主菜单
- Echo [Q] 退出
- Echo.
- Echo %L1%
- Echo.
- Set SChoice=
- Set /P SChoice= 请选择要进行的操作 (Y/M/Q) ,然后按回车:
- If "%SChoice%"=="" Goto Restore_Pan
- If /I "%SChoice%"=="Y" Goto Restore_Dstart
- If /I "%SChoice%"=="M" Goto NetMode
- If /I "%SChoice%"=="Q" Exit
- Goto Restore_Disk
- :Restore_Dstart
- start GhostSrv.exe %ghofile% mousedos -disk%DChoice% -ud -g" -rb -sure"
- start TinyPxe.exe /start
- Exit
- :RPan
- CLS
- Title %Prog%——恢复镜像
- Echo.
- Echo %L1%
- Echo.
- Echo %L2%
- Echo.
- Echo %L1%
- Echo.
- Echo %L4%
- Echo.
- Echo %L3%
- Echo.
- Echo %L5%
- Echo.
- Echo %L1%
- Echo.
- Echo 已选的Ghost文件:
- Echo.
- Echo %ghofile%
- Echo.
- Echo 已选的第%DChoice%块硬盘
- Echo.
- Echo %L1%
- Echo.
- Echo 请确认开始:
- Echo.
- Echo [1-9] 对第几个分区恢复
- Echo [S] 重新选择Ghost文件
- Echo [M] 返回上一级菜单
- Echo [Q] 退出
- Echo.
- Echo %L1%
- Echo.
- Set PChoice=
- Set /P PChoice= 请选择要进行的操作 ([1-9]/S/M/Q) ,然后按回车:
- If "%PChoice%"=="" Goto RPan
- ::If Not "%PChoice%"=="" Set PChoice=%PChoice:~0,1%
- If /I "%PChoice%"=="S" Goto Ghostfile
- If /I "%PChoice%"=="M" Goto Restore
- If /I "%PChoice%"=="Q" Exit
- ( echo %DChoice%|findstr "^[1-9]$">nul && goto Restore_Pan ) || Goto RPan
- :Restore_Pan
- CLS
- Title %Prog%——恢复镜像
- Echo.
- Echo %L1%
- Echo.
- Echo %L2%
- Echo.
- Echo %L1%
- Echo.
- Echo %L4%
- Echo.
- Echo %L3%
- Echo.
- Echo %L5%
- Echo.
- Echo %L1%
- Echo.
- Echo 已选的第%DChoice%块硬盘的第%PChoice%分区
- Echo.
- Echo %L1%
- Echo.
- Echo 请选择恢复镜像方式:
- Echo.
- Echo [Y] 开始Ghost网刻
- Echo [M] 返回主菜单
- Echo [Q] 退出
- Echo.
- Echo %L1%
- Echo.
- Set SChoice=
- Set /P SChoice= 请选择要进行的操作 (Y/M/Q) ,然后按回车:
- If "%SChoice%"=="" Goto Restore_Pan
- If /I "%SChoice%"=="Y" Goto Restore_Pstart
- If /I "%SChoice%"=="M" Goto NetMode
- If /I "%SChoice%"=="Q" Exit
- Goto Restore_Pan
- :Restore_Pstart
- start GhostSrv.exe %ghofile% mousedos -p1 -disk%DChoice% -part%PChoice% -ud -g" -rb -sure"
- start TinyPxe.exe /start
- Exit
- :Err0
- Echo 错误:GhostSrv.exe文件丢失!&&Echo.
- Echo 请确认Ghost服务端GhostSrv.exe文件存在!&&Echo.
- Echo 请按任意键退出脚本。。。
- PAUSE>NUL
- Exit
- :Err1
- Echo 错误:TinyPxe.exe文件丢失!&&Echo.
- Echo 请确认TinyPxe服务端TinyPxe.exe文件存在!&&Echo.
- Echo 请按任意键退出脚本。。。
- PAUSE>NUL
- Exit
- :Err2
- COLOR 47
- Set Prog=停止 网络Ghost
- Title %Prog%
- :End
- CLS
- Title %Prog%
- Echo.
- Echo %L1%
- Echo.
- Echo %L2%
- Echo.
- Echo %L1%
- Echo.
- Echo !!!Ghost或TinyPxe已经运行!!!
- Echo.
- Echo 注意: 停止脚本前请确保Ghost已完成或未开始
- Echo 网络Ghost中禁止使用本脚本停止任务
- Echo.
- Echo %L3%
- Echo.
- Echo %L5%
- Echo.
- Echo %L1%
- Echo.
- Echo [G] 停止网络Ghost服务和TinyPxe服务
- Echo [Q] 不停止,直接退出
- Echo.
- Echo %L1%
- Echo.
- Set Choice=
- Set /P Choice= 请选择要进行的操作 (G/Q) ,然后按回车:
- If "%Choice%"=="" Goto end
- ::If Not "%Choice%"=="" Set Choice=%Choice:~0,1%
- If /I "%Choice%"=="G" Goto killpid
- If /I "%Choice%"=="Q" Exit
- Goto end
- :killpid
- taskkill /f /im GhostSrv.exe 1>nul 2> nul
- taskkill /f /im TinyPxe.exe 1>nul 2> nul
- Goto menu
复制代码 |
|