如题。我不是要给电脑分区,而是在写正则表达式。假设我载入了超过26个分区,我想知道windows会如何给盘符。别说「干嘛加这么多分区」之类的话,我已经说了,我是在写正则表达式,而不是在装电脑。


一楼说搜索引擎能搜到的,真的搜了吗?请问搜到哪个是有明确依据的?

搜索得到的典型说法是,因为英文字母一共26个,所以盘符最多26个,或者因为各种原因,比26少几个。请问你看到这样的说法,随随便便就相信了?

说自己实践看看,那我请问下这怎么实践。没错我想到了,我可以建一个win虚拟机,给它建26个以上的分区,看看到底能不能建成,然后如果能,那么看看盘符到底是什么。但是——如果我手头确实不方便进行上述操作,我真的就要因为在知乎问这个问题而被嘲讽不会搜索不会实践?

请问摄影方面的问题或者电脑硬体方面的问题,有多少是搜索不到或者看书看不到或者自己实践不出来的。问题是自己解决的成本高于知乎这个社区所允许的提问和回答的最低成本。我这个问题的解决成本真的低于知乎允许的程度吗?即使真的这么低,那我想,作为好心网友也不介意直接告诉我一个如此简单的答案吧。

不想回答就不回答咯,特地跟我说「搜索或者实践就能知道」好像教我做人似的。真容易搜容易实践,你去做一遍再来回答啊。


谢谢认真回答的各位。

有朋友说他能搜到,我试了下,按他的关键词确实可以搜到。他搜的是「windows 26个盘符」。但我搜索时我并不知道这个数字是26,所以我搜的是「windows最多多少个盘符」,这样出来的结果,虽然有些也提到26,但就很难让我信服了,所以我也就没有顺著「26」继续去搜索。这时,我自然就想到去专业社区提问,但回应肯定很慢,还涉及注册用户和梯子之类的麻烦事。来知乎问一下这个问题,我觉得并不是什么多丢人的事情。

这个问题显然不是什么非常高深的问题,互联网资源这么丰富,肯定也有对应的答案——但同时肯定也是非常稀疏的。

在我看来,知乎这个平台存在的意义,不就是让我们犯不著去费劲「深度地从稀疏的互联网中挖掘到自己需要的零星信息」,而「由擅长的人分享特定的知识」吗?

还有朋友说B站有人做过实验,另外有媒体尝试过windows可以插多少u盘。我觉得大部分人遇到问题想到的不是去B站和某些特定的媒体门户去搜索吧。或者说,既然我可以去B站和媒体搜索,那我为什么不可以来知乎问一下呢?对吧?

当然,大家提供的信息对我而言是很有帮助的,再次表示感谢。

另外补充,有朋友想问我「为什么你会要写盘符的正则表达式」,不妨说一下,没有很特定的原因,就是想到了而已。就像有的人会尝试用橡皮泥捏一个螺丝一样。不见得都是出于很明确的目的。

再次感谢。


SetVolumeMountPoint

用SetVolumeMountPoint(mountvol所用)分配盘符,结果是:

  • 0x01-0x5B, 0x5D-0x80, 0xFF:成功
  • 0x5C():Error 123 文件名、目录名或卷标语法不正确。
  • 0x81-0xFE:Error 87 参数错误。

所以,Windows用SetVolumeMountPoint最多分配102个盘符。

DefineDosDevice

subst用DefineDosDeviceW,试了试推断65382个(基本平面减去上面出错的),先留个坑,以后再说。估计要翻历史才能搞清楚这到底是不是盘符。

盘符的访问

Explorer只显示26个字母的盘符;命令行可以访问其他盘符;某些盘符是特殊字元(比如^M),只能自行编程访问。


好的,我真的搜了。

百度关键字:Windows 26个盘符

第一条,CSDN,切题

第二条,百度知道,也切题

第三条,微软技术支持,切题。

第四条才出现一条不切题的百度经验…(如何切换盘符)

而且第五条又圆回来了

必应,关键字:more than 26 drives

第一条StackOverflow,切题

第二条是个叫ask-leo的像是个人博客的东西,也切题

第三条是msdn讨论版,也切题

第四条quora,给出了不错的答案和解释

第五条是个不认识的论坛,讨论到最后也有答案。

Google 关键字:windows more than 26 drives

第一条reddit,切题

第二条StackOverflow,切题

第三条msdn讨论版,切题

第四条不认识的论坛,有误导性内容但也有正确答案

第五条quora,切题。

知乎 关键字Windows 26盘符

除了这个问题还有至少两个切题的

bilibili,关键字 Windows 26盘符

只有两个视频,但是都是正确答案。

其中一个包含实验。

所以您到底是在哪里搜不到啊


Windows最多可以提供26个盘符(drive letter),如果你试图载入更多的分区的话是不能成功的。这个人的Stack Overflow答案就进行了尝试:What happens if I finish drive letters。

假设我载入了超过26个分区,我想知道windows会如何给盘符。

答案是不会给盘符。如果你想要使用超过26个分区的话,要把这个盘挂载到一个文件夹上(assign a mount point folder path to the drive):

Assign a mount point folder path to a drive.?

docs.microsoft.com图标

这时候,访问这个盘的文件,程序的操作就像访问他mount point那个文件夹一样。比如这个盘被挂载到了E:Mountpoint上,那么访问这个盘里面的FolderFile文件,访问E:MountpointFolderFile即可。

我是在写正则表达式,而不是在装电脑。

我不知道你想写正则表达式是想干什么。如果你是希望能自动地管理分区的话,参考资料里面给出了一个DISKPART工具,可以尝试一下。据我的理解,这件事情和正则表达式貌似没有关系。

可以再看看这个资料,提到一个图形界面工具,并且提到了超越26个盘符限制的两个小hack(undocumented,所以尽量还是别用……)

What if the hard disk is partitioned into more than 26 sections in Windows??

superuser.com图标

这个回答里面也有一些关于挂载特性的知识:

如果硬碟分区到了 Z 盘,那么继续分区后面的盘符是什么??

www.zhihu.com图标

PS:有的回答批评题主不善于搜索,的确有些不礼貌。不过我觉得题主的搜索技巧还有提高的空间。题主可以尝试一下用英文搜索。我看到这个问题也不知道答案,于是我就Google了「windows drive letters finish」,就得到了What happens if I finish drive letters这个回答,回答里面又提到了「volume mounting」,我就又搜了一下,查到了微软的文档。建议题主做好要搜索多次的准备,并且如果一下搜不到的话可以适当的调整关键词。千万别把搜索范围限制在CSDN博客!


这问题没几个回答却给莫名推送出来了,真的会有很多人看吗?

其实26个盘符在磁碟管理器里本来很清晰明了,甚至不用什么怀疑和额外的实验。

但是,当年很多人被一张图坑到了,有些怀疑人生。年代久远出处或已不可考,但在当年各大论坛、群聊里出没频繁。

甚至发展出相关谣言说26个字母分配完了,就轮到AA、AB、AC或者更多的说是CC、CD、CE。

这幅图的确有著画龙点睛的一笔,把加速球还给P上去盖住下面的图标。

然而,做假图的人已经留了线索。毕竟钓鱼如果钩直饵咸那就无人上钩,但若做得真能彻底以假乱真,就又不便于在鱼上钩后点破或让鱼自己发觉上了钩。

仔细看看这幅图,聪明的你一定会发现姜太公故意给你留的一堆破绽。

就不问分卷大小全部都如此一致为900G整了?

直接就看是怎样的巧合可以让硬碟用量如此一致?

但网路里鱼龙混杂,或许还有些人会杠就是这么巧合,什么多组备份云云。

但是,再仔细看看这谜一样的条形比例,恐怕就没什么争议了吧?

也不知道有没有给一些读者解惑了呢?如果看完后发觉你曾是网路假图的受害者,并更加明确了Windows真的只能分配26个单字母盘符,能不能点一个小小的赞呢?谢谢了!(^_^)

不过说到最后,未来不定什么时候,微软一拍脑门真的给win10或者win server扩充盘符限制了也难说哦?


测试系统盘符需要真的去分26个区吗?甚至还要搞个虚拟机?当然不是。

我来给一个所有人都能快速测试的方法。

打开命令提示符,输入以下代码,回车:

for %I in (D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z) do subst %I: %windir%

你会得到一堆的「硬碟分区」。

现在你可以插一个优盘,看看系统还会不会分配盘符。

我的测试结果是系统不会吱一声,托盘会弹出设备符号,但是没有盘符:

如果你想恢复,可以直接重启系统。或者运行这个命令:

for %I in (D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z) do subst %I: /D


解释:

既然只要把盘符占满了就可以了,我相信还要很多更加创意的方法。这里用的是盘符映射命令subst,再举两个例子:

  1. 土豪买25个优盘,外加一个有25个口的usb hub,「硬」测试。
  2. 用虚拟设备,比如创建25个虚拟光碟机。

测试中发现的彩蛋:

即使A盘和B盘未被占用,即使剩余盘符全部被占用后,系统仍然不会把新的设备分配给A或B盘。那么如果手动分配设备给A/B盘是否可行呢?你可以自己动手试一下。


推荐阅读:
相关文章