无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 1492|回复: 26
打印 上一主题 下一主题

find --set 如何指定变量?

[复制链接]
跳转到指定楼层
1#
发表于 2024-11-24 17:35:10 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
比如这个命令:
find --set-root /ISO/MyISO.ISO
RUN  /ISO/MyISO.ISO
但是RUN模块在另一个分区的MOD目录下,用命令:
find --set-root /MOD/RUN
也能找到,但是就是两者不在同一个分区。


有两个问题:
(1)如何让这句能正常运行RUN  /ISO/MyISO.ISO?也就是如何让RUN放在一个公共目录,就像windows的环境变量一样,运行CMD能打开命令行窗口,G4D如何做到同样的效果?
(2)若是在不同的分区,有没有办法设置个变量,如%myrun%,第一次set -root后赋予这个变量,然后通过%RUN%  /ISO/MyISO.ISO来运行?

2#
发表于 2024-11-24 17:41:43 | 只看该作者
直接用0PE的RUN模块不香?


二○二四年十一月二十四日
回复

使用道具 举报

3#
发表于 2024-11-24 17:50:23 | 只看该作者
find  /MOD/RUN  |  set bd=
find --set-root /ISO/MyISO.ISO
%bd%/MOD/RUN  /ISO/MyISO.ISO

点评

好人  详情 回复 发表于 2024-11-25 21:18

评分

参与人数 2无忧币 +8 收起 理由
yyz2191958 + 3
zhanglei1371 + 5 就是我需要的

查看全部评分

回复

使用道具 举报

4#
发表于 2024-11-24 18:23:45 | 只看该作者
本帖最后由 wangyibin 于 2024-11-24 20:12 编辑

不是我的专长 给你搜索了一下 你看有没有帮助
问题1:如何让RUN命令在一个公共目录下运行
在GRUB中,你可以使用环境变量来达到类似Windows环境变量的效果。GRUB使用的是set命令来设置变量。以下是你可以尝试的方法:

设置一个环境变量指向公共目录:
  1. set run_dir=/path/to/public/directory
复制代码
修改你的RUN命令:
  1. find --set-root /ISO/MyISO.ISO
  2. set run_path=$root/ISO/MyISO.ISO
  3. set run_cmd="$run_dir/RUN $run_path"
  4. $run_cmd
复制代码
这里,run_dir是你的公共目录,run_path是你的ISO文件路径,run_cmd则是构建的完整命令行。

在不同的分区:
如果RUN模块在不同的分区,你可能需要先加载这个分区,然后设置路径。例如:
  1. # 假设你的公共目录在(hd0,msdos1)
  2. set root=(hd0,msdos1)
  3. set run_dir=/MOD
  4. find --set-root /ISO/MyISO.ISO
  5. set run_path=$root/ISO/MyISO.ISO
  6. set run_cmd="$run_dir/RUN $run_path"
  7. $run_cmd
复制代码

问题2:在不同分区设置变量
设置变量:
  1. find --set-root /ISO/MyISO.ISO
  2. export myrun=$root/ISO/MyISO.ISO
复制代码
这里,export命令将变量myrun设置为环境变量,使其在后续命令中可用。

使用变量运行命令:
  1. set root=(hd0,msdos1)
  2. set run_dir=/MOD
  3. set run_cmd="$run_dir/RUN $myrun"
  4. $run_cmd
复制代码
注意,GRUB不直接支持%variable%格式的变量引用,你需要使用$variable的形式来引用变量。

注意事项:
分区和设备的识别:确保你使用正确的分区和设备标识符(如(hd0,msdos1)),这些标识符在GRUB中是动态的,可能需要根据实际情况调整。
变量作用域:GRUB的变量在脚本中是全局的,但如果你在不同的脚本或环境中使用这些变量,确保它们被正确设置和导出。
路径问题:在GRUB中,路径需要特别注意,因为它使用的是GRUB的文件系统,而不是操作系统的文件系统。


评分

参与人数 2无忧币 +8 收起 理由
zhanglei1371 + 5 很给力!太厉害了!!!
yyz2191958 + 3

查看全部评分

回复

使用道具 举报

5#
发表于 2024-11-24 19:08:29 | 只看该作者
wangyibin 发表于 2024-11-24 18:23
不是我的专长 给你搜索了一下 你看有没有帮助
问题1:如何让RUN命令在一个公共目录下运行
在GRUB中,你可 ...

助人为乐

点评

3楼简洁  详情 回复 发表于 2024-11-25 20:12
回复

使用道具 举报

6#
 楼主| 发表于 2024-11-24 19:49:09 | 只看该作者
wangyibin 发表于 2024-11-24 18:23
不是我的专长 给你搜索了一下 你看有没有帮助
问题1:如何让RUN命令在一个公共目录下运行
在GRUB中,你可 ...

请问,上面的命令,您亲自测试过么?
我亲自测试了下,发现一个也不对。
反而是上面@2011yaya2007777 大师的,用了%bd%变量的没有任何问题。【而你却说:GRUB不直接支持%variable%格式的变量引用,显然是错误的】
你的答案不会是AI生成的吧???
回复

使用道具 举报

7#
 楼主| 发表于 2024-11-24 20:23:14 | 只看该作者
zhanglei1371 发表于 2024-11-24 19:49
请问,上面的命令,您亲自测试过么?
我亲自测试了下,发现一个也不对。
反而是上面@2011yaya2007777  ...

全是错的,没有一点帮助。浪费了我不少时间。
回复

使用道具 举报

8#
发表于 2024-11-25 06:17:32 | 只看该作者
谢谢4楼分享

点评

谢分享啥?你都没有仔细看我的回复?都是错的  详情 回复 发表于 2024-11-25 06:52
回复

使用道具 举报

9#
 楼主| 发表于 2024-11-25 06:52:47 | 只看该作者

谢分享啥?你都没有仔细看我的回复?都是错的
回复

使用道具 举报

10#
发表于 2024-11-25 07:16:42 | 只看该作者
来学习了
回复

使用道具 举报

11#
发表于 2024-11-25 14:39:38 | 只看该作者
学习了
回复

使用道具 举报

12#
发表于 2024-11-25 20:12:30 来自手机 | 只看该作者
yyz2191958 发表于 2024-11-24 19:08
助人为乐

3楼简洁
回复

使用道具 举报

13#
发表于 2024-11-25 21:18:46 | 只看该作者
2011yaya2007777 发表于 2024-11-24 17:50
find  /MOD/RUN  |  set bd=
find --set-root /ISO/MyISO.ISO
%bd%/MOD/RUN  /ISO/MyISO.ISO

好人
回复

使用道具 举报

14#
发表于 2024-11-26 07:45:40 | 只看该作者
学到了,谢谢
回复

使用道具 举报

15#
发表于 2024-11-26 08:17:24 | 只看该作者
佬大好人,支持点赞
回复

使用道具 举报

16#
发表于 2024-12-5 16:11:58 | 只看该作者
本帖最后由 yuadao 于 2024-12-5 16:32 编辑

其实用变量也有问题,有可能在不同的磁盘上有同样的文件结构。我的方法是在相应分区的特定位置(比如\__GRUB4DOS)创建一个磁盘的特征文件,比如128G的固态盘,特征文件名就是:grub-ssd-128g-01.txt,最后的序号是为了区分相同容量的磁盘,最后用find --set-root搜索这个特征文件就行了。下面是一个示例:
title Tango-XP3PE
find --set-root /__GRUB4DOS/grub-ssd-128g-01.txt
map /__GRUB4DOS/_ISO/Tango-XP3PE.iso (0xff) || map --mem /__GRUB4DOS/ISO/Tango-XP3PE.iso (0xff)
map --hook
chainloader (0xff)
这样就会启动特征文件grub-ssd-128g-01.txt所在分区中的iso



回复

使用道具 举报

17#
 楼主| 发表于 2024-12-6 18:20:45 | 只看该作者
yuadao 发表于 2024-12-5 16:11
其实用变量也有问题,有可能在不同的磁盘上有同样的文件结构。我的方法是在相应分区的特定位置(比如\__GRU ...

若需要用这样的命令呢?
run abc
run位于分区1,abc位于分区2

点评

没用过run。run文件不大的话,完全可以复制到__GRUB4DOS目录中使用  详情 回复 发表于 2024-12-15 20:27
回复

使用道具 举报

18#
 楼主| 发表于 2024-12-6 18:21:18 | 只看该作者
邪恶海盗 发表于 2024-11-24 17:41
直接用0PE的RUN模块不香?

0PE没有发现run模块
回复

使用道具 举报

19#
发表于 2024-12-6 19:39:46 | 只看该作者


点评

这个看不出怎么用?都是write内存地址的写法  详情 回复 发表于 2024-12-15 10:28
谢谢,我找找最新版的0PE  详情 回复 发表于 2024-12-7 15:00
回复

使用道具 举报

20#
 楼主| 发表于 2024-12-7 15:00:17 | 只看该作者

谢谢,我找找最新版的0PE
回复

使用道具 举报

21#
 楼主| 发表于 2024-12-15 10:28:55 | 只看该作者

这个看不出怎么用?都是write内存地址的写法
回复

使用道具 举报

22#
发表于 2024-12-15 20:27:30 | 只看该作者
zhanglei1371 发表于 2024-12-6 18:20
若需要用这样的命令呢?
run abc
run位于分区1,abc位于分区2

没用过run。run文件不大的话,完全可以复制到__GRUB4DOS目录中使用
回复

使用道具 举报

23#
发表于 2024-12-15 20:46:02 | 只看该作者

学到了,谢谢
回复

使用道具 举报

24#
发表于 2024-12-15 21:05:22 | 只看该作者
学习
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-2-18 03:10

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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