为虚拟分区设置卷标 (Set Volume Label for SUBST Drive)

2024-03-05 02:48

本文主要是介绍为虚拟分区设置卷标 (Set Volume Label for SUBST Drive),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

关键词: 虚拟分区,卷标,SUBST
适用人群:SUBST爱好者
平台: Windows XP/Vista

相信大家对磁盘分区卷标(disk volume label)都不陌生,在Windows中每个磁盘分区都可设置一个卷标,在资源管理器(explorer)我的电脑中可以看得到,如果没有设置卷标,资源管理会显示一个默认值(比如Local Disk等)。

常用的修改卷标的方法有三种:

  1. 在资源管理器中重命名分区;
  2. 在命令行中使用LABEL命令;
  3. 在WIN32程序/脚本中调用SetVolumeLabel函数。

对于真实的物理分区,它的卷标是存在于磁盘分区结构中的,通过以上三种方法都可方便地修改卷标。但是对于SUBST命令得到的虚拟分区,它的“卷标”是什么?如何修改它的“卷标”?


直观地理解这个问题,SUBST只是简单地把一个路径省略成盘符(associates a path with a drive letter),那么它就没有卷标这个概念(一个路径怎么会有卷标)。然而实际情况要稍微复杂一点点儿。

我在XP和Vista系统上都做了一番实验,过程就不说了,直接给出结果。有两个方面:一是显示出来的卷标是什么;二是能否以及如何修改卷标。

为了方便起见,不妨设现在磁盘中有物理分区C:,该分区下有个目录叫Temp,路径为C:/Temp,用SUBST目录把C:的根目录或者Temp目录虚拟成Z:,即

a) SUBST Z: C:/
b) SUBST Z: C:/Temp/

一、虚拟分区的卷标

通过DIR命令看到的Z:的卷标都与C:相同(如果C:没有卷标则Z:也没有)。

在资源管理器中看到的卷标有如下三种可能:

  1. 如果C:有卷标,则Z:的卷标与之相同;
  2. 如果C:没有卷标,但注册表中存在相关注册表项[1],则显示此注册表项的值;
  3. 如果C:没有卷标,注册表项也不存在,则Z:也没有卷标(会显示默认的Local Disk等)

注[1]: 相关注册表项为HKCU/Software/Microsoft/Windows/CurrentVersion/Explorer/DriveIcons/Z/DefaultLabel下的(Default),或HKLM中相应键值。

二、修改虚拟分区卷标

如果将C:/虚拟为Z:(即上面提到的命令a),那么无论使用哪种方式修改Z:的卷标,其实都是在修改C:;但需要注意的事,根据虚拟分区卷标的显示规则,当把Z:的卷标删除时,C:的卷标也随之被删除,C:将显示Local Disk等默认值,但Z:显示的有可能是注册表中的内容。

如果将C:/Temp/虚拟为Z:(即上面提到的命令b),那么使用Lable命令或者SetVolumeLabel函数都无法修改Z:的卷标(提示Access Denied);使用资源管理器重命名方式修改Z:的卷标,其实是修改了上面提到的注册表项的值,但根据虚拟分区卷标的显式规则,只有当C:没有卷标时,才会显示注册表中的内容。

——– 小巧的分隔符 ——–

综上,如果希望在资源管理器中能够使得各个虚拟分区显示各不相同的卷标,需要将相应的物理分区卷标删除,并保证注册表中有相关的注册表项(可以通过资源管理器修改,也可以通过脚本或程序直接修改注册表)。

——– 身轻如燕的分隔符 ——–

最后,感谢Drinker Lu提出了这个问题。

 

 

引自: http://www.zhongqingju.com/?p=78

这篇关于为虚拟分区设置卷标 (Set Volume Label for SUBST Drive)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/775085

相关文章

如何关闭 Mac 触发角功能或设置修饰键? mac电脑防止误触设置技巧

《如何关闭Mac触发角功能或设置修饰键?mac电脑防止误触设置技巧》从Windows换到iOS大半年来,触发角是我觉得值得吹爆的MacBook效率神器,成为一大说服理由,下面我们就来看看mac电... MAC 的「触发角」功能虽然提高了效率,但过于灵敏也让不少用户感到头疼。特别是在关键时刻,一不小心就可能触

Nginx配置系统服务&设置环境变量方式

《Nginx配置系统服务&设置环境变量方式》本文介绍了如何将Nginx配置为系统服务并设置环境变量,以便更方便地对Nginx进行操作,通过配置系统服务,可以使用系统命令来启动、停止或重新加载Nginx... 目录1.Nginx操作问题2.配置系统服android务3.设置环境变量总结1.Nginx操作问题

grom设置全局日志实现执行并打印sql语句

《grom设置全局日志实现执行并打印sql语句》本文主要介绍了grom设置全局日志实现执行并打印sql语句,包括设置日志级别、实现自定义Logger接口以及如何使用GORM的默认logger,通过这些... 目录gorm中的自定义日志gorm中日志的其他操作日志级别Debug自定义 Loggergorm中的

前端 CSS 动态设置样式::class、:style 等技巧(推荐)

《前端CSS动态设置样式::class、:style等技巧(推荐)》:本文主要介绍了Vue.js中动态绑定类名和内联样式的两种方法:对象语法和数组语法,通过对象语法,可以根据条件动态切换类名或样式;通过数组语法,可以同时绑定多个类名或样式,此外,还可以结合计算属性来生成复杂的类名或样式对象,详细内容请阅读本文,希望能对你有所帮助...

MySQL8.0设置redo缓存大小的实现

《MySQL8.0设置redo缓存大小的实现》本文主要在MySQL8.0.30及之后版本中使用innodb_redo_log_capacity参数在线更改redo缓存文件大小,下面就来介绍一下,具有一... mysql 8.0.30及之后版本可以使用innodb_redo_log_capacity参数来更改

Nginx设置连接超时并进行测试的方法步骤

《Nginx设置连接超时并进行测试的方法步骤》在高并发场景下,如果客户端与服务器的连接长时间未响应,会占用大量的系统资源,影响其他正常请求的处理效率,为了解决这个问题,可以通过设置Nginx的连接... 目录设置连接超时目的操作步骤测试连接超时测试方法:总结:设置连接超时目的设置客户端与服务器之间的连接

mybatis和mybatis-plus设置值为null不起作用问题及解决

《mybatis和mybatis-plus设置值为null不起作用问题及解决》Mybatis-Plus的FieldStrategy主要用于控制新增、更新和查询时对空值的处理策略,通过配置不同的策略类型... 目录MyBATis-plusFieldStrategy作用FieldStrategy类型每种策略的作

CSS弹性布局常用设置方式

《CSS弹性布局常用设置方式》文章总结了CSS布局与样式的常用属性和技巧,包括视口单位、弹性盒子布局、浮动元素、背景和边框样式、文本和阴影效果、溢出隐藏、定位以及背景渐变等,通过这些技巧,可以实现复杂... 一、单位元素vm 1vm 为视口的1%vh 视口高的1%vmin 参照长边vmax 参照长边re

Windows设置nginx启动端口的方法

《Windows设置nginx启动端口的方法》在服务器配置与开发过程中,nginx作为一款高效的HTTP和反向代理服务器,被广泛应用,而在Windows系统中,合理设置nginx的启动端口,是确保其正... 目录一、为什么要设置 nginx 启动端口二、设置步骤三、常见问题及解决一、为什么要设置 nginx

vue基于ElementUI动态设置表格高度的3种方法

《vue基于ElementUI动态设置表格高度的3种方法》ElementUI+vue动态设置表格高度的几种方法,抛砖引玉,还有其它方法动态设置表格高度,大家可以开动脑筋... 方法一、css + js的形式这个方法需要在表格外层设置一个div,原理是将表格的高度设置成外层div的高度,所以外层的div需要