Board logo

标题: [其他] 请教一个ghost批处理变量的问题 [打印本页]

作者: fanzhuo    时间: 2012-9-22 11:20     标题: 请教一个ghost批处理变量的问题

小弟一个ghost批处理,语句如下
ghost.exe -forceusb -clone,mode=load,src=3:1\\%GHO_%,dst=2 -fx -quiet -sure
%GHO_%变量为不含路径的ghost文件名
如果src=3:1%GHO_%这句没有两个斜杠则ghost报文件名或路径错,报错信息显示“3:1xxx.gho”
如果src=3:1\\%GHO_%这句加了双斜杠,ghost也报文件名或路径错,报错信息显示“3:1\“xxx.gho”会多一个双引号
如果src=3:1\%GHO_%这句加了单斜杠,ghost也报文件名或路径错,报错信息显示“3:1“xxx.gho”会多一个双引号,但是没斜杠
目前来看变量代入是没问题的,出现双引号的问题可能与前面的斜杠有关
有没有办法加了双斜杠后去掉后面的那个双引号
或者是,在变量代入的时候把斜杠加进去
请问论坛高手怎么处理?
谢谢!!!

作者: forfiles    时间: 2012-9-22 11:24

把完整的代码贴出来看看
作者: fanzhuo    时间: 2012-9-22 11:28

本帖最后由 fanzhuo 于 2012-9-22 11:30 编辑

变量是另一个批处理用awk写到一个txt文件的,这里只是调出来,变量没问题,问题就出在这个ghost语句这里

@echo off
ECHO 

:g0
call dp0.bat %gho%
if %gho_%*==* goto error2

:g2
cls
if exist list2.txt del list2.txt
echo :ghost  " 确认修复参数 "[x] >list2.txt
echo ===========================================>>list2.txt
echo   系统镜像:[$gho_,50,U!                 ]  >>list2.txt
echo ===========================================>>list2.txt
call w.bat box @list2.txt:ghost #4
if errorlevel 100 goto error3
if "%?%"=="4" goto zh
if "%?%"=="3" goto 3
if "%?%"=="2" goto 2
if "%?%"=="1" goto 1
goto end

:zh
ghost.exe -forceusb -clone,mode=load,src=3:1\\%GHO_%,dst=2 -fx -quiet -sure
goto down

下面4个wbat的按钮代码删了
作者: terse    时间: 2012-9-22 12:34

本帖最后由 terse 于 2012-9-22 12:35 编辑

先在GO段那里 把 变量 gho_ echo  “%gho_%" 确认正确后 再从GHOST 代码找错
我dos里GHOST 用的是单斜杠
作者: apang    时间: 2012-9-22 12:43

回复 3# fanzhuo


   这个应该是从"DOS时代菜鸟"的《我的工具箱》中抠出来的,貌似要修改DP0.BAT中的awk脚本。
  请先征得原作者同意,并向原作者请教。我以前也有请教过。
作者: terse    时间: 2012-9-22 13:25

:g0
call dp0.bat %gho%
echo "%gho_%"
::这里应该看到
pause
if %gho_%*==* goto error2
作者: fanzhuo    时间: 2012-9-22 14:37

谢谢各位,先试试看
回5楼,是时代菜鸟的作品吗?我不知道,我也找过他,想请教的,但是联系不上
作者: fanzhuo    时间: 2012-9-22 15:19

本帖最后由 fanzhuo 于 2012-9-22 15:49 编辑

还是不行!!!
作者: apang    时间: 2012-9-22 15:25

回复 7# fanzhuo

http://bbs.wuyou.com/viewthread. ... CB%C4%F1&page=1
你可以在这里跟贴
我的问题作者在29楼已解答。
作者: fanzhuo    时间: 2012-9-22 15:58

菜鸟大大,我是修改了你的xghost.img,我用于硬盘恢复,不是分区,所以我把你镜像里取值的前面给去掉了,例如:1.1:\xxx.gho我只留了xxx.gho,在ghost恢复的批处理里面我指定了路径,在恢复的时候ghost报错,我看了报错信息,变量取出来没问题,报错信息上显示的是xxx.gho,就是路径有问题,在xxx.gho前面老是有个双引号,怎么去掉?
如果我把变量取成\xxx.gho就正常,但是显示的时候有个斜杠就不好看,麻烦大侠指点




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2