无忧启动论坛

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

[已解决] 变量相关

[复制链接]
1#
发表于 2013-12-23 13:27:59 | 显示全部楼层
我的理解:
bootmgr=%@root^%  可以使 bootmgr 随着 @root 变化,如果 @root 发生变化,则 bootmgr 也跟着变化,相当于 bootmgr 和 @root 绑定在一起了。
bootmgr=%@root%    使 bootmgr 只对 %@root% 取一次值,如果以后 @root 发生变化,则 bootmgr 不会随着变化。

点评

你需要理解的是call的作用和对变量的处理 一行命令里的变量在执行这行命令之前就已经被扩展了 假设当前root为(cd) 不存在变量bootroot 如果写成 find --set-root /bootmgr && set bootroot=%@root% 执  详情 回复 发表于 2013-12-23 14:01
回复

使用道具 举报

2#
发表于 2013-12-23 15:59:05 | 显示全部楼层
sratlf 发表于 2013-12-23 14:01
你需要理解的是call的作用和对变量的处理  一行命令里的变量在执行这行命令之前就已经被扩展了

假设当 ...

我理解了,整行命令在执行之前会被解析,解析的过程中,会将其中的变量替换成实际的值。

%@root^% 的写法就是为了防止在解析命令行的时候将其扩展成实际的值,而是将其扩展成字符串 %@root%,以便下次解析的时候继续扩展。

当 find --set-root /bootmgr 执行成功后,需要执行 && set bootroot=%@root% 的时候,又要执行一次解析,此时会将 %@root% 扩展成实际的值。

call 在这里是为了刷新环境变量。


回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-6-12 19:28

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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