无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 3764|回复: 23
打印 上一主题 下一主题

[原创] VHD系统整理分区磁盘盘符

[复制链接]
跳转到指定楼层
#
发表于 2024-7-15 15:15:01 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 baby1277 于 2024-9-17 13:27 编辑

用过VHD系统的可能经常会遇到在本地磁盘系统上为D盘或者其他盘符,导致路径错误。

比如我的桌面在D盘   进入VHD系统后直接提示桌面不存在,所以写了个整理磁盘的脚本顺手分享给大家一起用

  1. @echo off
  2. if not "%~d0"=="C:" msg %username% /time:3 请在C盘上运行。 && exit
  3. :: 设置本地系统盘符为Z盘
  4. SETLOCAL ENABLEDELAYEDEXPANSION
  5. 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 if exist %%i:\Windows for /f %%b in ('mountvol %%i: /l') do set "id=%%b" && mountvol %%i: /d && mountvol Z: !id!
  6. if not defined id msg %username% /time:3 请在VHD系统上运行。 && exit
  7. :: 获取所有磁盘盘符ID
  8. set n1=0
  9. del /f /q id.txt >nul 2>nul
  10. for %%a 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 if exist %%a: for /f %%c in ('mountvol %%a: /l') do echo %%c >>id.txt && set /a n1=n1 +=1
  11. :: 删除所有磁盘盘符
  12. for %%a 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 if exist %%a: mountvol %%a: /d
  13. :: 重新分配磁盘盘符
  14. set n2=0
  15. for %%a 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 if not exist %%a: for /f "delims=" %%i in (id.txt) do (
  16. if not exist %%a: mountvol %%a: %%i && set /a n2=n2 += 1
  17. if "%n1%"=="!n2!" goto end
  18. )
  19. :end
  20. del /f /q id.txt >nul 2>nul & set id=
  21. SETLOCAL DISABLEDELAYEDEXPANSION
复制代码

不想复制的就回帖下载附件吧  谢谢支持!

游客,如果您要查看本帖隐藏内容请回复

点评

辛苦了  发表于 2024-7-15 18:18

评分

参与人数 1无忧币 +2 收起 理由
yyz2191958 + 2 赞一个!

查看全部评分

21#
发表于 2024-10-25 16:37:19 | 只看该作者
666666666666666666666666
回复

使用道具 举报

20#
发表于 2024-10-14 22:35:16 | 只看该作者
感谢分享
回复

使用道具 举报

19#
发表于 2024-10-14 08:40:53 | 只看该作者
感谢老大辛苦了!
回复

使用道具 举报

18#
发表于 2024-10-13 21:26:43 | 只看该作者

谢谢分享
回复

使用道具 举报

17#
发表于 2024-10-4 06:42:35 来自手机 | 只看该作者
有帮助
回复

使用道具 举报

16#
发表于 2024-9-30 18:01:02 | 只看该作者
谢谢分享
回复

使用道具 举报

15#
发表于 2024-9-30 10:44:30 | 只看该作者
非常有用,学习一下。谢谢!
回复

使用道具 举报

14#
发表于 2024-9-24 14:40:31 | 只看该作者
谢分享,学习收藏了。
回复

使用道具 举报

13#
发表于 2024-9-19 19:10:40 | 只看该作者

感谢分享
回复

使用道具 举报

12#
发表于 2024-7-19 23:41:33 | 只看该作者
感谢无私分享
回复

使用道具 举报

11#
发表于 2024-7-19 12:32:31 | 只看该作者
多谢分享!!!
回复

使用道具 举报

10#
发表于 2024-7-17 13:13:41 | 只看该作者
感谢分享
回复

使用道具 举报

9#
发表于 2024-7-17 10:16:22 | 只看该作者
高手,感谢分享,学习收藏了。
回复

使用道具 举报

8#
发表于 2024-7-15 22:24:11 | 只看该作者
baby1277 发表于 2024-7-15 19:29
是临时设置为Z盘,最后再设置一遍放在放在最后一个盘。

太好了  这个思路确实   很人性化   放在最后一个盘符最符合规则
回复

使用道具 举报

7#
 楼主| 发表于 2024-7-15 19:29:37 | 只看该作者
promrhxq 发表于 2024-7-15 17:04
vhd系统  必须整理盘符   感觉上应该是将原C盘  切为Z盘  是吗   感谢分享好东东

是临时设置为Z盘,最后再设置一遍放在放在最后一个盘。

点评

太好了 这个思路确实 很人性化 放在最后一个盘符最符合规则  详情 回复 发表于 2024-7-15 22:24
回复

使用道具 举报

6#
发表于 2024-7-15 18:17:30 | 只看该作者
谢谢分享
回复

使用道具 举报

5#
发表于 2024-7-15 17:52:32 | 只看该作者
谢谢分享。。
回复

使用道具 举报

4#
发表于 2024-7-15 17:04:47 | 只看该作者
vhd系统  必须整理盘符   感觉上应该是将原C盘  切为Z盘  是吗   感谢分享好东东  

点评

是临时设置为Z盘,最后再设置一遍放在放在最后一个盘。  详情 回复 发表于 2024-7-15 19:29
回复

使用道具 举报

3#
发表于 2024-7-15 15:27:46 | 只看该作者
谢谢分享
回复

使用道具 举报

2#
发表于 2024-7-15 15:25:45 | 只看该作者
谢谢分享
回复

使用道具 举报

1#
 楼主| 发表于 2024-7-15 15:15:53 | 只看该作者
本帖最后由 baby1277 于 2024-9-17 13:28 编辑

如果本地系统分区是独立的分区,稍稍改下把他隐藏起来,绝对能治愈你的强迫症。哈  
  1. @echo off
  2. if not "%~d0"=="C:" msg %username% /time:3 请在C盘上运行。 && exit
  3. :: 设置本地系统盘符为Z盘
  4. SETLOCAL ENABLEDELAYEDEXPANSION
  5. 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 if exist %%i:\Windows for /f %%b in ('mountvol %%i: /l') do set "id=%%b" && mountvol %%i: /d && mountvol Z: !id!
  6. if not defined id msg %username% /time:3 请在VHD系统上运行。 && exit
  7. :: 注册表设置隐藏Z盘 可能要重启资源管理器后生效。
  8. reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v "NoDrives" /t REG_DWORD /d "33554432" /f  
  9. :: 获取所有磁盘盘符ID  排除Z盘
  10. set n1=0
  11. del /f /q id.txt >nul 2>nul
  12. for %%a in (D E F G H I J K L M N O P Q R S T U V W X Y) do if exist %%a: for /f %%c in ('mountvol %%a: /l') do echo %%c >>id.txt && set /a n1=n1 +=1
  13. :: 删除所有磁盘盘符  排除Z盘
  14. for %%a in (D E F G H I J K L M N O P Q R S T U V W X Y) do if exist %%a: mountvol %%a: /d
  15. :: 重新分配磁盘盘符  排除Z盘
  16. set n2=0
  17. for %%a in (D E F G H I J K L M N O P Q R S T U V W X Y) do if not exist %%a: for /f "delims=" %%i in (id.txt) do (
  18. if not exist %%a: mountvol %%a: %%i && set /a n2=n2 += 1
  19. if "%n1%"=="!n2!" goto end
  20. )
  21. :end
  22. del /f /q id.txt >nul 2>nul & set id=
  23. SETLOCAL DISABLEDELAYEDEXPANSION
复制代码


回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-24 21:39

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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