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

相关文章

PostgreSQL 默认隔离级别的设置

《PostgreSQL默认隔离级别的设置》PostgreSQL的默认事务隔离级别是读已提交,这是其事务处理系统的基础行为模式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录一 默认隔离级别概述1.1 默认设置1.2 各版本一致性二 读已提交的特性2.1 行为特征2.2

一文详解MySQL如何设置自动备份任务

《一文详解MySQL如何设置自动备份任务》设置自动备份任务可以确保你的数据库定期备份,防止数据丢失,下面我们就来详细介绍一下如何使用Bash脚本和Cron任务在Linux系统上设置MySQL数据库的自... 目录1. 编写备份脚本1.1 创建并编辑备份脚本1.2 给予脚本执行权限2. 设置 Cron 任务2

mtu设置多少网速最快? 路由器MTU设置最佳网速的技巧

《mtu设置多少网速最快?路由器MTU设置最佳网速的技巧》mtu设置多少网速最快?想要通过设置路由器mtu获得最佳网速,该怎么设置呢?下面我们就来看看路由器MTU设置最佳网速的技巧... 答:1500 MTU值指的是在网络传输中数据包的最大值,合理的设置MTU 值可以让网络更快!mtu设置可以优化不同的网

MySQL 设置AUTO_INCREMENT 无效的问题解决

《MySQL设置AUTO_INCREMENT无效的问题解决》本文主要介绍了MySQL设置AUTO_INCREMENT无效的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录快速设置mysql的auto_increment参数一、修改 AUTO_INCREMENT 的值。

详解Linux中常见环境变量的特点与设置

《详解Linux中常见环境变量的特点与设置》环境变量是操作系统和用户设置的一些动态键值对,为运行的程序提供配置信息,理解环境变量对于系统管理、软件开发都很重要,下面小编就为大家详细介绍一下吧... 目录前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变

SpringBoot3中使用虚拟线程的完整步骤

《SpringBoot3中使用虚拟线程的完整步骤》在SpringBoot3中使用Java21+的虚拟线程(VirtualThreads)可以显著提升I/O密集型应用的并发能力,这篇文章为大家介绍了详细... 目录1. 环境准备2. 配置虚拟线程方式一:全局启用虚拟线程(Tomcat/Jetty)方式二:异步

安装centos8设置基础软件仓库时出错的解决方案

《安装centos8设置基础软件仓库时出错的解决方案》:本文主要介绍安装centos8设置基础软件仓库时出错的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录安装Centos8设置基础软件仓库时出错版本 8版本 8.2.200android4版本 javas

Ubuntu设置程序开机自启动的操作步骤

《Ubuntu设置程序开机自启动的操作步骤》在部署程序到边缘端时,我们总希望可以通电即启动我们写好的程序,本篇博客用以记录如何在ubuntu开机执行某条命令或者某个可执行程序,需要的朋友可以参考下... 目录1、概述2、图形界面设置3、设置为Systemd服务1、概述测试环境:Ubuntu22.04 带图

VSCode设置python SDK路径的实现步骤

《VSCode设置pythonSDK路径的实现步骤》本文主要介绍了VSCode设置pythonSDK路径的实现步骤,包括命令面板切换、settings.json配置、环境变量及虚拟环境处理,具有一定... 目录一、通过命令面板快速切换(推荐方法)二、通过 settings.json 配置(项目级/全局)三、

如何Python使用设置word的页边距

《如何Python使用设置word的页边距》在编写或处理Word文档的过程中,页边距是一个不可忽视的排版要素,本文将介绍如何使用Python设置Word文档中各个节的页边距,需要的可以参考下... 目录操作步骤代码示例页边距单位说明应用场景与高级用China编程途小结在编写或处理Word文档的过程中,页边距是一个