无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: sratlf
打印 上一主题 下一主题

[分享] RUN 1206 更新 支持磁盘交换,文件检索,自动菜单,自动列表,全自动安装nt5x系统

    [复制链接]
2671#
 楼主| 发表于 2014-6-9 12:05:39 | 只看该作者
fukystone 发表于 2014-6-9 12:01
哦?那么是grldr自带的菜单?看着也挺像的……
这真奇怪了,明明就是光盘启动的

这个是grldr内置菜单。。。。无论什么启动grldr内置菜单都是一样的  除非是自己修改过了
回复

使用道具 举报

2672#
发表于 2014-6-9 12:08:44 | 只看该作者
出现上图后会自动退回到命令符,但是在命令符敲:configfile /menu.lst 就可以回到我的主菜单。
看上图,应该是执行run的返回命令时,跳转执行了上图的那个菜单,最后到commandline回到了命令符,也就是菜单的第5行和第6行没有找到光盘根目录下的menu.lst
回复

使用道具 举报

2673#
发表于 2014-6-9 12:19:09 | 只看该作者
sratlf 发表于 2014-6-9 11:45
run里的find没用过 --ignore-cd 。。。  我自己就是做的iso做usb-cdrom启动  返回主菜单也没问题啊。。。 ...

请看附件。做成iso后,run返回直接进命令符,以前的老版run(13年)可以退回到原主菜单的

bootcd.7z

2.42 MB, 下载次数: 19, 下载积分: 无忧币 -2

回复

使用道具 举报

2674#
发表于 2014-6-9 12:22:33 | 只看该作者
fukystone 发表于 2014-6-9 12:08
出现上图后会自动退回到命令符,但是在命令符敲:configfile /menu.lst 就可以回到我的主菜单。
看上图, ...

将你的菜单放到
        /boot/grub/menu.lst

        /grub/menu.lst
都能返回。


grldr内置菜单根本没有configfile /menu.lst
不知道为什么要做这样的限制
回复

使用道具 举报

2675#
发表于 2014-6-9 12:30:27 | 只看该作者
527104427 发表于 2014-6-9 12:22
将你的菜单放到
        /boot/grub/menu.lst

果然如此。多谢5大。
话说这设定真有点蛋疼,完全无法理解啊。
另外5大看下srsf6呗,新版dpms不能用啊
回复

使用道具 举报

2676#
发表于 2014-6-9 12:41:33 | 只看该作者
fukystone 发表于 2014-6-9 12:30
果然如此。多谢5大。
话说这设定真有点蛋疼,完全无法理解啊。
另外5大看下srsf6呗,新版dpms不能用啊

那个,S大回复过了,0.46a的问题,暂时用0.45c吧
回复

使用道具 举报

2677#
发表于 2014-6-9 12:44:21 | 只看该作者
527104427 发表于 2014-6-9 12:41
那个,S大回复过了,0.46a的问题,暂时用0.45c吧

不是的,我后来又测试了一下,用045c提示找不到vmscsi.sys文件……请在你的帖子里看一下
回复

使用道具 举报

2678#
发表于 2014-6-9 13:00:44 | 只看该作者
另外请s大看下修改的命令,新版有这样一个问题:
使用run --fira dpms iso=(cd)/mype/tangope.iso这样的命令,可以显示srs加载成功,但是pe在启动到桌面的时候死掉,explorer出不来。dpms换srs也一样。

QQ截图20140609125903.jpg (248.83 KB, 下载次数: 124)

QQ截图20140609125903.jpg

QQ截图20140609125925.jpg (339.44 KB, 下载次数: 135)

QQ截图20140609125925.jpg

QQ截图20140609130000.jpg (469.92 KB, 下载次数: 124)

QQ截图20140609130000.jpg
回复

使用道具 举报

2679#
 楼主| 发表于 2014-6-9 13:34:18 | 只看该作者
fukystone 发表于 2014-6-9 12:08
出现上图后会自动退回到命令符,但是在命令符敲:configfile /menu.lst 就可以回到我的主菜单。
看上图, ...

我其实很想问  如果grldr内置菜单是默认的  menu.lst还放置在根目录  iso启动的话是启动的哪个菜单文件  怎么进去的run。。。
0x71蓝屏很少见到  不过理论上来说  可以成功启动pe的iso到滚动条阶段grub4dos的事情就已经全部结束了  以前启动这个iso能成功吗
回复

使用道具 举报

2680#
发表于 2014-6-9 13:44:56 | 只看该作者
sratlf 发表于 2014-6-9 13:34
我其实很想问  如果grldr内置菜单是默认的  menu.lst还放置在根目录  iso启动的话是启动的哪个菜单文件   ...

iso启动的就是根目录下的menu.lst,run是从menu.lst进去的……
不过这个把menu.lst放到boot/grub就ok了,算是问题解决。
同样的菜单文件(我上传那个),同样的iso,用srsf6选f6img是可以进pe的,并且识别vmscsi。
老版run(13年),同样的iso,用老版dpms,也是可以正常进入pe识别vmscsi的。
所以这个应该是新版修改的问题。
至于新版dpms的代码,用你的会蓝屏(有时候也不蓝,会死在进入桌面后,出不来explorer),用5大那个会提示找不到vmscsi.sys文件……
回复

使用道具 举报

2681#
 楼主| 发表于 2014-6-9 13:48:32 | 只看该作者
fukystone 发表于 2014-6-9 13:44
iso启动的就是根目录下的menu.lst,run是从menu.lst进去的……
不过这个把menu.lst放到boot/grub就ok了 ...

根目录那个应该是bug  不应该执行根目录下menu.lst的  这个我会再测试

0606的RUN是旧版dpms  0608的是修改后的  你先试试这两个有什么区别
回复

使用道具 举报

2682#
发表于 2014-6-9 14:35:04 | 只看该作者
sratlf...辛苦了,再接再厉
回复

使用道具 举报

2683#
发表于 2014-6-9 16:47:50 | 只看该作者
本帖最后由 527104427 于 2014-6-9 16:54 编辑

报告S大,发现一处问题


看来,还是得判断一下括号是不是在行首才行啊

1.png (4.53 KB, 下载次数: 189)

1.png

2.png (8.51 KB, 下载次数: 180)

2.png

3.png (10.53 KB, 下载次数: 186)

3.png

4.png (7.4 KB, 下载次数: 176)

4.png

66.png (11.19 KB, 下载次数: 182)

66.png
回复

使用道具 举报

2684#
发表于 2014-6-9 17:04:18 | 只看该作者
问题解决,

将这句:
::tmp值为最近[位置
set /a tmp=%?% + 1 > nul


改成:
::tmp值为最近[位置
set /a tmp=%?% + 2 > nul




将这句:
:get_[
::tmp值为检测段开始位置,每次检测1kb,比较数值大小不能加双引号,否则出错
if %tmp%<=%~2 && set tmp=0 ! set /a tmp=%tmp% - %~2 > nul
cat --skip=%tmp% --length=%~2 --locate=[ %inipath% > nul && exit
if %tmp%<=0 && exit 1
goto :get_[



改成:
:get_[
::tmp值为检测段开始位置,每次检测1kb,比较数值大小不能加双引号,否则出错
if %tmp%<=%~2 && set tmp=0 ! set /a tmp=%tmp% - %~2 > nul
cat --skip=%tmp% --length=%~2 --locate=\n[ %inipath% > nul && exit
if %tmp%<=0 && exit 1
goto :get_[

回复

使用道具 举报

2685#
 楼主| 发表于 2014-6-9 17:39:28 | 只看该作者
527104427 发表于 2014-6-9 17:04
问题解决,

将这句:

前后都可以加上换行的判断

::tmp值为最近[位置
set /a tmp=%?% + 2 > nul
cat --skip=%tmp% --locate="]\xD" --number=1 %inipath% > nul || exit

:get_[
...
cat --skip=%tmp% --length=%~2 --locate="\xA[" %inipath% > nul && exit
回复

使用道具 举报

2686#
发表于 2014-6-9 21:03:54 | 只看该作者
sratlf 发表于 2014-6-9 17:39
前后都可以加上换行的判断

::tmp值为最近[位置

S大看一下,这段改成这样应该更严谨一点


  1. :hwid_check
  2. set tmp=
  3. if "%~3"=="" && exit
  4. ::排除ID的行首被;注销的情况
  5. cat --length=0x%~3 --locate=";" %inipath% | set tmp=
  6. if exist tmp && calc %?% > nul && set /a tmp=%?% > nul && calc 0x%~3 - %?% - 1 > nul
  7. if exist tmp && cat --skip=%tmp% --length=%@retval% --locate="\xD\xA" %inipath% > nul
  8. if exist tmp && calc %?% > nul || shift 3 && goto :hwid_check
  9. ::不以,或"结尾则继续
  10. ::比如ID为PCI\VEN_1000&DEV_0054,搜到的却是PCI\VEN_1000&DEV_0054&SUBSYS_1F041028
  11. calc 0x%~3 + 16 > nul
  12. cat --skip=%@retval% --length=1 %inipath% | set tmp=
  13. ::加引号比较字符串大小会转为ascii码再比较
  14. if "%tmp%">="0x22" if "%tmp%"<="0x22" || if "%tmp%"=="," || shift 3 && goto :hwid_check
  15. calc 0x%~3 - %~2 + 16 > nul
  16. cat --skip=%@retval% --length=%~2 %inipath% | set /u tmp=
  17. call Fn.15 "%~1" "%tmp%" && shift 3 && goto :hwid_check
  18. ::tmp值为匹配ID位置
  19. set /a tmp=0x%~3 - %~2 + 16 > nul
  20. exit
复制代码
回复

使用道具 举报

2687#
 楼主| 发表于 2014-6-9 21:07:21 | 只看该作者
527104427 发表于 2014-6-9 21:03
S大看一下,这段改成这样应该更严谨一点

怎么还有行首;注释情况。。。  再看看还有什么特殊的没。。。
回复

使用道具 举报

2688#
发表于 2014-6-9 21:19:04 | 只看该作者
sratlf 发表于 2014-6-9 21:07
怎么还有行首;注释情况。。。  再看看还有什么特殊的没。。。




还真有,行首为 exc 的也不能要
回复

使用道具 举报

2689#
 楼主| 发表于 2014-6-9 21:47:50 | 只看该作者
527104427 发表于 2014-6-9 21:19
还真有,行首为 exc 的也不能要

为exc的为什么不能用。。。
回复

使用道具 举报

2690#
发表于 2014-6-9 21:47:51 | 只看该作者
本帖最后由 527104427 于 2014-6-9 22:07 编辑
sratlf 发表于 2014-6-9 21:07
怎么还有行首;注释情况。。。  再看看还有什么特殊的没。。。


这样就好了:


  1. :hwid_check
  2. set tmp=
  3. if "%~3"=="" && exit
  4. ::不以 ms_ 开头则继续搜索
  5. cat --length=0x%~3 --locate="\xD\xA" %inipath% > nul
  6. calc %?% + 2 > nul
  7. cat --skip=%@retval% --length=3 --locatei="ms_" %inipath% > nul
  8. calc %?% > nul || shift 3 && goto :hwid_check
  9. ::不以 , 或 " 结尾则继续搜索
  10. ::比如ID为PCI\VEN_1000&DEV_0054,搜到的却是PCI\VEN_1000&DEV_0054&SUBSYS_1F041028
  11. calc 0x%~3 + 16 > nul
  12. cat --skip=%@retval% --length=1 %inipath% | set tmp=
  13. ::加引号比较字符串大小会转为ascii码再比较
  14. if "%tmp%">="0x22" if "%tmp%"<="0x22" || if "%tmp%"=="," || shift 3 && goto :hwid_check
  15. calc 0x%~3 - %~2 + 16 > nul
  16. cat --skip=%@retval% --length=%~2 %inipath% | set /u tmp=
  17. call Fn.15 "%~1" "%tmp%" && shift 3 && goto :hwid_check
  18. ::tmp值为匹配ID位置
  19. set /a tmp=0x%~3 - %~2 + 16 > nul
  20. exit
复制代码
回复

使用道具 举报

2691#
发表于 2014-6-9 21:51:56 | 只看该作者
sratlf 发表于 2014-6-9 21:47
为exc的为什么不能用。。。

这有一段奇怪的代码,不知道用来干嘛的


1.png (31.63 KB, 下载次数: 177)

1.png
回复

使用道具 举报

2692#
 楼主| 发表于 2014-6-9 22:06:23 | 只看该作者
527104427 发表于 2014-6-9 21:51
这有一段奇怪的代码,不知道用来干嘛的

貌似是和什么配置有关的  找到一个相近的解释  http://forum.driverpacks.net/viewtopic.php?id=3161

点评

估计是 DPs.exe 的配置,应该跟搜索ID的位置无关  详情 回复 发表于 2014-6-9 22:19
回复

使用道具 举报

2693#
发表于 2014-6-9 22:19:52 | 只看该作者
sratlf 发表于 2014-6-9 22:06
貌似是和什么配置有关的  找到一个相近的解释  http://forum.driverpacks.net/viewtopic.php?id=3161

估计是 DPs.exe 的配置,应该跟搜索ID的位置无关

点评

应该是吧 那综合起来就是行首不为 ; 且以 ms_ 开头的是吧 还有其他要求吗  详情 回复 发表于 2014-6-9 22:28
回复

使用道具 举报

2694#
 楼主| 发表于 2014-6-9 22:28:16 | 只看该作者
527104427 发表于 2014-6-9 22:19
估计是 DPs.exe 的配置,应该跟搜索ID的位置无关

应该是吧  那综合起来就是行首不为 ;   且以 ms_ 开头的是吧  还有其他要求吗

点评

满足 以 ms_ 开头就行了(行首不为;也包括在内),S大看 #2690 代码  详情 回复 发表于 2014-6-9 22:40
回复

使用道具 举报

2695#
发表于 2014-6-9 22:40:29 | 只看该作者
sratlf 发表于 2014-6-9 22:28
应该是吧  那综合起来就是行首不为 ;   且以 ms_ 开头的是吧  还有其他要求吗

满足 以 ms_ 开头就行了(行首不为;也包括在内),S大看 #2690 代码

点评

恩 看到了 是不是搜索的多了点。。。  详情 回复 发表于 2014-6-9 22:59
回复

使用道具 举报

2696#
 楼主| 发表于 2014-6-9 22:59:28 | 只看该作者
527104427 发表于 2014-6-9 22:40
满足 以 ms_ 开头就行了(行首不为;也包括在内),S大看 #2690 代码

恩  看到了  是不是搜索的多了点。。。

点评

是挺多的,搜少了不好计算,干脆就全搜了吧  详情 回复 发表于 2014-6-9 23:18
回复

使用道具 举报

2697#
发表于 2014-6-9 23:18:31 | 只看该作者
sratlf 发表于 2014-6-9 22:59
恩  看到了  是不是搜索的多了点。。。

是挺多的,搜少了不好计算,干脆就全搜了吧

点评

貌似被我改复杂了  详情 回复 发表于 2014-6-10 00:50
回复

使用道具 举报

2698#
 楼主| 发表于 2014-6-10 00:50:37 | 只看该作者
527104427 发表于 2014-6-9 23:18
是挺多的,搜少了不好计算,干脆就全搜了吧

貌似被我改复杂了

  1. :root_path
  2. if "%~1"=="" && exit
  3. set tmp=%~1
  4. cat --locatei="%tmp:~-16%" %inipath% | call :hwid_check %~1 %@retval%
  5. if "%tmp%"=="" && exit
  6. if %tmp%<=1024 && calc %tmp% > nul ! calc 1024 > nul
  7. call :get_char %tmp% %@retval% "xA[" || exit
  8. ::tmp值为最近[位置
  9. set /a tmp=%?% + 2 > nul
  10. cat --skip=%tmp% --locate="]" --number=1 %inipath% > nul || exit
  11. calc %?% - %tmp% > nul
  12. cat --skip=%tmp% --length=%@retval% %inipath% > (md)0x200+1
  13. cat --locate=\x2D --replace=\x2F (md)0x200+1 > nul
  14. cat (md)0x200+1 | set /u root=D/M/
  15. set tmp=
  16. exit

  17. ::tmp值为匹配ID位置
  18. :hwid_check
  19. set tmp=
  20. if "%~3"=="" && exit
  21. ::行首为ms_
  22. set tmp=0x%~3
  23. if %tmp%<=512 && calc %tmp% > nul ! calc 512 > nul
  24. call :get_char %tmp% %@retval% "xA" || set ?=-1
  25. calc %?% + 1 > nul
  26. cat --skip=%@retval% --length=3 %inipath% | set tmp=
  27. call Fn.15 "%tmp%" "ms_" && shift 3 && goto :hwid_check
  28. ::不以,或"结尾
  29. calc 0x%~3 + 16 > nul
  30. cat --skip=%@retval% --length=1 %inipath% | set tmp=
  31. if "%tmp%"=="," || if "%tmp%">="0x22" if "%tmp%"<="0x22" || shift 3 && goto :hwid_check
  32. calc 0x%~3 - %~2 + 16 > nul
  33. cat --skip=%@retval% --length=%~2 %inipath% | set tmp=
  34. call Fn.15 "%~1" "%tmp%" && shift 3 && goto :hwid_check
  35. set /a tmp=0x%~3 - %~2 + 16 > nul
  36. exit

  37. :get_char
  38. ::%tmp%起始位置 %~2每段范围 %~3要查找的字符
  39. if %tmp%<=%~2 && set tmp=0 && calc %~1 > nul ! set /a tmp=%tmp% - %~2 > nul && calc %~2 > nul
  40. cat --skip=%tmp% --length=%@retval% --locate="\%~3" %inipath% > nul && exit
  41. if %tmp%<=0 && set tmp= && exit 1
  42. goto :get_char
复制代码

点评

S大这么晚还没休息  详情 回复 发表于 2014-6-10 06:47
回复

使用道具 举报

2699#
发表于 2014-6-10 06:47:56 | 只看该作者
sratlf 发表于 2014-6-10 00:50
貌似被我改复杂了

S大这么晚还没休息

点评

是到家先睡了一会然后起来的。。。  详情 回复 发表于 2014-6-10 09:34
回复

使用道具 举报

2700#
 楼主| 发表于 2014-6-10 09:34:14 | 只看该作者
527104427 发表于 2014-6-10 06:47
S大这么晚还没休息

是到家先睡了一会然后起来的。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-4-29 00:00

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表