为虚拟分区设置卷标 (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

相关文章

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

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

电脑密码怎么设置? 一文读懂电脑密码的详细指南

《电脑密码怎么设置?一文读懂电脑密码的详细指南》为了保护个人隐私和数据安全,设置电脑密码显得尤为重要,那么,如何在电脑上设置密码呢?详细请看下文介绍... 设置电脑密码是保护个人隐私、数据安全以及系统安全的重要措施,下面以Windows 11系统为例,跟大家分享一下设置电脑密码的具体办php法。Windo

如何设置vim永久显示行号

《如何设置vim永久显示行号》在Linux环境下,vim默认不显示行号,这在程序编译出错时定位错误语句非常不便,通过修改vim配置文件vimrc,可以在每次打开vim时永久显示行号... 目录设置vim永久显示行号1.临时显示行号2.永www.chinasem.cn久显示行号总结设置vim永久显示行号在li

Linux:alias如何设置永久生效

《Linux:alias如何设置永久生效》在Linux中设置别名永久生效的步骤包括:在/root/.bashrc文件中配置别名,保存并退出,然后使用source命令(或点命令)使配置立即生效,这样,别... 目录linux:alias设置永久生效步骤保存退出后功能总结Linux:alias设置永久生效步骤

Mysql虚拟列的使用场景

《Mysql虚拟列的使用场景》MySQL虚拟列是一种在查询时动态生成的特殊列,它不占用存储空间,可以提高查询效率和数据处理便利性,本文给大家介绍Mysql虚拟列的相关知识,感兴趣的朋友一起看看吧... 目录1. 介绍mysql虚拟列1.1 定义和作用1.2 虚拟列与普通列的区别2. MySQL虚拟列的类型2

mysql数据库分区的使用

《mysql数据库分区的使用》MySQL分区技术通过将大表分割成多个较小片段,提高查询性能、管理效率和数据存储效率,本文就来介绍一下mysql数据库分区的使用,感兴趣的可以了解一下... 目录【一】分区的基本概念【1】物理存储与逻辑分割【2】查询性能提升【3】数据管理与维护【4】扩展性与并行处理【二】分区的

Spring MVC如何设置响应

《SpringMVC如何设置响应》本文介绍了如何在Spring框架中设置响应,并通过不同的注解返回静态页面、HTML片段和JSON数据,此外,还讲解了如何设置响应的状态码和Header... 目录1. 返回静态页面1.1 Spring 默认扫描路径1.2 @RestController2. 返回 html2

四种简单方法 轻松进入电脑主板 BIOS 或 UEFI 固件设置

《四种简单方法轻松进入电脑主板BIOS或UEFI固件设置》设置BIOS/UEFI是计算机维护和管理中的一项重要任务,它允许用户配置计算机的启动选项、硬件设置和其他关键参数,该怎么进入呢?下面... 随着计算机技术的发展,大多数主流 PC 和笔记本已经从传统 BIOS 转向了 UEFI 固件。很多时候,我们也

VMWare报错“指定的文件不是虚拟磁盘“或“The file specified is not a virtual disk”问题

《VMWare报错“指定的文件不是虚拟磁盘“或“Thefilespecifiedisnotavirtualdisk”问题》文章描述了如何修复VMware虚拟机中出现的“指定的文件不是虚拟... 目录VMWare报错“指定的文件不是虚拟磁盘“或“The file specified is not a virt

Linux中chmod权限设置方式

《Linux中chmod权限设置方式》本文介绍了Linux系统中文件和目录权限的设置方法,包括chmod、chown和chgrp命令的使用,以及权限模式和符号模式的详细说明,通过这些命令,用户可以灵活... 目录设置基本权限命令:chmod1、权限介绍2、chmod命令常见用法和示例3、文件权限详解4、ch