caoxueqiang 发表于 2018-11-6 11:22:52

传递给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端的会话名称)

窄口牛 发表于 2018-11-6 12:31:15

没看懂你的意思。那实际出来是什么样了?

caoxueqiang 发表于 2018-11-6 12:37:34

ghost 接收的参数是冒号前面的,冒号后面的参数全部丢失了

邪恶海盗 发表于 2018-11-6 14:38:39

Ghost网络备份/恢复(克隆/还原)教程[首发于海盗博客]
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=398023&fromuid=359852
仅供参考...

qh6420933 发表于 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      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:11:42

本帖最后由 窄口牛 于 2018-11-6 15:13 编辑

等号前面加个^大小等后面是数字的时候需要转义。

caoxueqiang 发表于 2018-11-6 15:46:27

邪恶海盗 发表于 2018-11-6 14:38
Ghost网络备份/恢复(克隆/还原)教程[首发于海盗博客]
http://bbs.wuyou.net/forum.php?mod=view ...

非常感谢,问题解决了!
ghost -ja=MAX
让ghost从server端获取参数,就不用在客户端设定了!
页: [1]
查看完整版本: 传递给ghost 的参数中有冒号,要怎么处理?