尽量运用现有的功能达到目的,避免重复开发, 我将批处理改了下,算是一个通用的外部命令了 用法: WENV set INIFILE=INI文件 [段名] GETSECT.BAT ![]() 目前只能在11-03版的grldr上运行(11-04以后的版本批处理有BUG,新版正常后批处理还可以简化,并且可以将通过参数指定一个文件名,将结果写入文件) ![]() !BAT设置变量INIFILE=INI文件名 [段名],打印该段内容 |
@zhaohj 问题1 可以这样解决 cat --locate=... | WENV set a= WENV set a=0x${a! = 0x} # 最前面加上0x,然后将空格替换为空格0x [ 本帖最后由 tuxw 于 2010-11-5 21:23 编辑 ] |
我觉得这些不是很重要的东西尽量不要使用内部的命令去实现。 你可以把你最终想要得到的结果贴出来。 注:是最终的目的,而不是使用这个命令要达到的过程,也许会有更好的解决方案。 看看tuxw或zxw能不能想办法去实现。 |
11-05 版批处理BUG 随便写一个简单的语句集合的批处理文件,运行正常 在中间任意位置加一句 WENV check 1==2 echo ok 再运行批处理将在这句后退出 应该是只要有一条语句返回0就终止了 比如插入 WENV calc 1-1 && WENV echo ok 也一样 |
我比较希望的用法是这样的 WENV read GetSect.env inifile [aaaa] |
本帖最后由 mygamexxx 于 2025-1-23 16:03 编辑 错误 |
赞赞 |
本帖最后由 guyouhua 于 2024-9-25 18:01 编辑 2011yaya2007777 发表于 2024-9-24 19:17 能把那些版本的GRLDR GRLDR.MBR打包给我,我现在下载不了,在那个官网上面。 403 Forbidden You don't have permission to access the URL on this server. |
本帖最后由 guyouhua 于 2024-9-22 13:39 编辑 grub4dos-0.4.6a-2024-02-26.7z 在华硕X81S上,在c命令行运行uuid时,可以列出硬盘各分区,列完后grub4dos卡死,只能重启,不会正常回到命令输入行。GRUB4DOS 0.4.6a 2015-08-25这个版本测过,是没什么问题。 |
GRUB4DOS更新建议、bug反馈专帖 |
2011yaya2007777 发表于 2024-6-21 07:31 谢回复 得你提醒,我在G4D实机测试该语句,确实没问题返回了正确的ASCII码 但得更正你:我的语句末尾“0x"不能丢了,丢了就会把pause --test-key语句的结果(此语句返回没有”0x“字符的16进制字符串)当成10进制处理 最终我发现是我从网上下载的GRLDR内置编辑器4.0里的模拟启动QEMU的锅,没经过这一回我还真没想过QEMU和实机是不一样的,谢了 |
用 pause --test-key | set /A a=0xdf&0x 这条语句把按键的ASCII码赋值给变量a, 首先要确认你是在BIOS环境,而不是在UEFI环境。 新版本没有问题。是你的命令行语句问题。应当如下: pause --test-key | set /A a=0xdf& #这条语句把按键的ASCII码赋值给变量a, |
本帖最后由 zhujunff 于 2024-6-21 02:04 编辑 用 pause --test-key | set /A a=0xdf&0x 这条语句把按键的ASCII码赋值给变量a, 在2023-2-28版本及以前能正确执行,在2023-3-1版本及以后版本就不行了返回error 27:unrecognized command,为此我注册了账号来反馈 特地拍了照,可惜新手不能上传照片啊 |
现在工控机还都是在用DOS的很多,有很多东西值得研究的。 |
谢谢分享,支持原创,楼主不易,了表赞赏。 |
使用fbinsttool 创建的启动盘 重新创建一个efi引导软盘,然后替换。至于怎么创建,怎么加载,在本板块有答案。 |
这个回复也太长了吧。。。 |
本帖最后由 2010guoguo 于 2024-2-20 11:54 编辑 使用fbinsttool 创建的启动盘,映射了 efi分区,在EFI分区内用G4E启动WIN10PE 时遇到如下错误,ISO未解开无法启动,而虚拟机可以正常启动,菜单是这样的:title [01]启动64位WIN10PE系统\n find --set-root /efi/imgs/win10pe_x64.iso map /efi/imgs/win10pe_x64.iso (0xff) || map --mem /efi/imgs/win10pe_x64.iso (0xff) chainloader (0xff) ISO解开后使用NTBOOT NTLOADER也可以启动wim,G4E用的最新版 1129 ![]() ![]() |
2011yaya2007777 发表于 2024-1-26 18:30 PC是老电脑了,系统加载至内存是因为在内存中运行得更快,同时不怕中病毒和木马,也不怕各种软件搞坏系统。 |
2011yaya2007777 发表于 2024-1-26 18:30 PC是老电脑了,系统加载至内存是因为在内存中运行得更快,同时不怕中病毒和木马,也不怕各种软件搞坏系统。 |
关键是不加载到内存能不能用?如果能用,干嘛要加载到内存?加载到内存难道不占用内存?悖论。 |
2011yaya2007777 发表于 2024-1-26 17:04 感谢指点,按这方法启动后,可用空间倒是也变成6.6GB,但这样就没有将系统加载至内存的功效了。 ![]() |
map --mem --top 修改为 map 试一试 |
请教楼主,同一VHD文件,用不同方法启动,为何可用空间区别很大? 第一种方法启动: title win10 HD uuid (hd0,2) chainloader /efi/grub/ntloader initrd=/efi/grub/initrd.lz1 uuid=%?_UUID% file=/win10/win10.vhd启动完成后可用空间为6.5GB 第二种方法启动 title win10 --mem(hd) map --mem --top (hd0,2)/win10/win10.vhd (hd) chainloader (hd-1) 启动完成后可用空间就变为985MB 请问如何解决这个?谢谢! |
2011yaya2007777 发表于 2024-1-12 15:27 十分感谢!这个已经可以了。 我关注这个功能是在实验在硬盘上安装多个linux系统并启动。其中内核参数需要boot=/dev/sda13这样的参数,但是不方便的,具体办法是查找uuid传递给内核boot=uuid=xxxxxxxx之类的。 具体办法:一、用find发现一个自己预先建立的标识文件,再用uuid查找该分区的uuid再传递给内核;二、预先设置卷标,用vol查找分区,再用uuid查找uuid值再传递给内核;三、预先查找linux分区的uuid,用变量传递给内核。其中办法二最方便,用磁盘工具给linux分区设置一个唯一卷标就行,这样安装几种linux也可以轻松启动了。 |
这次应当可以了。 |
175 KB, 下载次数: 19
vol和uuid返回(hd44#)这样的值,其中#是类似各种制表符的怪符号。还是有问题的。官网的只要不超过10个分区不会出错。 |
本帖最后由 2011yaya2007777 于 2024-1-12 15:28 编辑 用find命令查找一个文件ISO等,再用vol和uuid查找label和uuid没问题。如:一个ISO文件在(hd0,13), 试一试这个。 |
2011xnsfgw 发表于 2023-12-11 17:49 用find命令查找一个文件ISO等,再用vol和uuid查找label和uuid没问题。如:一个ISO文件在(hd0,13), vol (hd0,13)返回label卷标,uuid (hd0,13)返回UUID值是正确的。 但如果已知(hd0,13)的卷标为yyzz,则vol yyzz返回的值则不是(hd0,13)而是(hd0,%)等值,导致%@root%值错误。同理,如果已知uuid,则UUID xxxxx-yyyy返回的值导致%@root%值错误。 |
2011xnsfgw 发表于 2023-12-11 17:29 2023-11-27官网的grldr问题依旧,你发的grldr变了,但仍有问题。 find命令正常:(hd0,0)一直到(hd0,14),共15个分区,输出正常。 vol和uuid命令:(hd0,0)一直到(hd0,9)正常,后面输出(hd0,b),(hd0,c),(hd0,d),(hd0,e),还是少一个分区,输出仍然不正确。应该和find命令一样,输出的分区表示应为(hdx,y),x和y均为数字。(hd0,b)在grub4dos中是不认的。 |
不点 发表于 2023-12-8 15:29 使用的是grub4dos.chenall.net下载的grldr,编译时间是2022-01-18. 你新编译的我试一下,有无问题我再反馈。 |
2011xnsfgw 发表于 2023-12-8 09:31 如果因为权限问题不方便上传图片,可以去github上提issue |
Powered by Discuz! X3.3
© 2001-2017 Comsenz Inc.