无忧启动论坛

标题: 请教C大,关于call的问题 [打印本页]

作者: mygamexxx    时间: 2011-11-30 12:42
标题: 请教C大,关于call的问题
批处理文件与dos.img在同一目录/boot/
批处理中:
1的写法:
....
call :loaddos
echo load dos...
pause
exit
:loaddos
map --mem %~dp0dos.img (fd0)
map --hook
exit

2的写法:
....
call :loaddos
echo load dos...
pause
exit
:loaddos
map --mem  /boot/dos.img (fd0)
map --hook
exit

3的写法:
....
map --mem %~dp0dos.img (fd0)
call :loaddos
echo load dos...
pause
exit
:loaddos
map --hook
exit

其中第1种写法返回到命令行,没有加载dos.img,第2、3种写法正常加载了dos.img。

[ 本帖最后由 mygamexxx 于 2011-11-30 13:09 编辑 ]
作者: hotdll    时间: 2011-11-30 13:13
标题: 回复 #1 mygamexxx 的帖子
  1. !BAT
  2. echo one : %~dp0
  3. call :loaddos
  4. echo load dos...
  5. pause
  6. exit
  7. :loaddos
  8. echo two : %~dp0
  9. map --mem %~dp0PASSWORD.LZMA (fd0)
  10. map --hook
  11. exit
复制代码


[ 本帖最后由 hotdll 于 2011-11-30 13:17 编辑 ]
作者: hotdll    时间: 2011-11-30 13:19
与call没有关系
你的批处理写的问题。
call调用的标签段的第0个参数是自身。路径不确定。


[ 本帖最后由 hotdll 于 2011-11-30 13:20 编辑 ]
作者: mygamexxx    时间: 2011-11-30 13:21
标题: 回复 #2 hotdll 的帖子
!BAT
echo one : %~dp0
call :loaddos
echo load dos...
pause
exit
:loaddos
echo two : %~dp0
pause
map --mem %~dp0onekey.ima (fd0)
map --hook
exit



原来路径有变化。
回车后返回命令行。

[ 本帖最后由 mygamexxx 于 2011-11-30 13:23 编辑 ]
作者: hotdll    时间: 2011-11-30 13:23
标题: 回复 #4 mygamexxx 的帖子
你解决了就好。。。。。。。。。。。。。。。。。。。。。

[ 本帖最后由 hotdll 于 2011-11-30 13:59 编辑 ]
作者: mygamexxx    时间: 2011-11-30 13:29
标题: 回复 #5 hotdll 的帖子
谢谢饭大,我只是试验一下效果。。。。
作者: zhaohj    时间: 2011-11-30 14:01
call相当于运行另一个P处理,对参数的理解有误。
下面可以:
1的写法:
....
call :loaddos %~dp0dos.img
echo load dos...
pause
exit
:loaddos
map --mem %~1 (fd0)
map --hook
exit




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3