传递给ghost 的参数中有冒号,要怎么处理?
本帖最后由 caoxueqiang 于 2018-11-6 15:52 编辑-clone,mode=prestore,src=@mcMAX,dst=1:1 -sure -rb
冒号是dos的特殊符号,怎么传递呢? 我用 ^: 不行!
===
解决方法:
ghost -ja=MAX
让ghost从server端获取参数,就不用在客户端设定了!(MAX 是server端的会话名称) 没看懂你的意思。那实际出来是什么样了? ghost 接收的参数是冒号前面的,冒号后面的参数全部丢失了 Ghost网络备份/恢复(克隆/还原)教程[首发于海盗博客]
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=398023&fromuid=359852
仅供参考... 供参考
@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 Bios模式:Grub2 Http网启(Bios模式推荐)
Echo Bios模式:Grub Tftp网启 (兼容性最好)
Echo Bios模式:IPXE Http网启(适合较新主机)
Echo EFI模式:IPXE EFI 网启【注意分区顺序】
Echo 退出
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 >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 >>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 制作镜像
Echo 恢复镜像
Echo 返回主菜单
Echo 退出
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 制作分区镜像 (pan.gho)
Echo 制作全盘镜像 (Disk.gho)
Echo 返回上一级菜单
Echo 退出
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 对第几块硬盘操作
Echo 返回上一级菜单
Echo 退出
Echo.
Echo %L1%
Echo.
Echo 注意: 1、生成的镜像保存路径为当前脚本文件夹
Echo 2、防止文件被覆盖文件名会加上6位随机数
Echo.
Echo %L1%
Echo.
Set DChoice=
Set /P DChoice= 请选择要进行的操作 (/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 "^$">nul && goto Backup_disk ) || Goto ZDisk
If /I "%ZChoice%"=="D" (( echo %DChoice%|findstr "^$">nul && goto Backup_disk ) || Goto ZDisk)
If /I "%ZChoice%"=="P" (( echo %DChoice%|findstr "^$">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 开始Ghost备份
Echo 返回主菜单
Echo 退出
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 对第几个分区操作
Echo 返回上一级菜单
Echo 退出
Echo.
Echo %L1%
Echo.
Echo 注意: 1、生成的镜像保存路径为当前脚本文件夹
Echo 2、防止文件被覆盖文件名会加上6位随机数
Echo.
Echo %L1%
Echo.
Set PChoice=
Set /P PChoice= 请选择要进行的操作 (/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 "^$">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 开始Ghost备份
Echo 返回主菜单
Echo 退出
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 返回上一级菜单
Echo 退出
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 恢复镜像到硬盘分区
Echo 恢复全盘镜像到硬盘
Echo 返回上一级菜单
Echo 退出
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 对第几块硬盘恢复
Echo 重新选择Ghost文件
Echo 返回上一级菜单
Echo 退出
Echo.
Echo %L1%
Echo.
Set DChoice=
Set /P DChoice= 请选择要进行的操作 (/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 "^$">nul && goto Restore_Disk ) || Goto RDisk
If /I "%DChoice%"=="Q" Exit
If /I "%RChoice%"=="D" (( echo %DChoice%|findstr "^$">nul && goto Restore_Disk ) || Goto RDisk)
If /I "%RChoice%"=="P" (( echo %DChoice%|findstr "^$">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 开始Ghost网刻
Echo 返回主菜单
Echo 退出
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 对第几个分区恢复
Echo 重新选择Ghost文件
Echo 返回上一级菜单
Echo 退出
Echo.
Echo %L1%
Echo.
Set PChoice=
Set /P PChoice= 请选择要进行的操作 (/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 "^$">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 开始Ghost网刻
Echo 返回主菜单
Echo 退出
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 停止网络Ghost服务和TinyPxe服务
Echo 不停止,直接退出
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 本帖最后由 窄口牛 于 2018-11-6 15:13 编辑
等号前面加个^大小等后面是数字的时候需要转义。 邪恶海盗 发表于 2018-11-6 14:38
Ghost网络备份/恢复(克隆/还原)教程[首发于海盗博客]
http://bbs.wuyou.net/forum.php?mod=view ...
非常感谢,问题解决了!
ghost -ja=MAX
让ghost从server端获取参数,就不用在客户端设定了!
页:
[1]