找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 20569|回复: 7

[系统相关] [求助]批处理获取非系统盘的盘符

[复制链接]
发表于 2024-1-24 20:55:26 | 显示全部楼层 |阅读模式
情况如下:硬盘分成若干个分区:0,1、0,2、0,3、...
0,1: 安装了 XP,若启动,7 分区为 E:,我的文档位置为 D: 盘
0,2: 安装了 7,若启动,此盘为 C 盘,XP 为 D:,我的文档位置为 E: 盘
0,3: 我的文档位置(X:\Users\用户名\...) X 可能是 D: 也可能是 E:
我在 XP、7 系统安装的时候迁移数据到 0,3 (我的文档)位置。

为了准确的获取我在安装系统时将盘符改到的位置,于是我写了这个批处理:
要求:
1、我的文档位置不能存在 Windows 系统;
2、在不含操作系统的盘上如果存在 X:\Users 文件夹即确定此盘。
  1. set Drive=.
  2. set Drives=.
  3. SETLOCAL ENABLEDELAYEDEXPANSION
  4. set Name=.
  5. for /f "tokens=3" %%i in ('wmic logicaldisk where DriveType^=3 Get FileSystem^,FreeSpace^,Name^,Size^|findstr ":"') do if not %%i==%SystemDrive% set Name=!Name! %%i
  6. set Drives=!Name!
  7. for %%i in (%Drives%) do if not exist "%%i\Windows\explorer.exe" (
  8.         if exist %%i\Users (
  9.                 set Drive=%%i
  10.                 goto ExitFor
  11.         ) else (
  12.                 set Drive=%%i
  13.         )
  14. )
  15. :ExitFor
  16. SETLOCAL DISABLEDELAYEDEXPANSION
  17. echo %Drive%
  18. pause
复制代码
总感觉虽然得到结果,但代码有点冗长!大大们能帮忙优化一下吗?谢谢!
 楼主| 发表于 2024-1-24 21:23:23 | 显示全部楼层
修改了一下,好了一点点:
  1. @echo off
  2. set Drive=.
  3. set Drives=.
  4. SETLOCAL ENABLEDELAYEDEXPANSION
  5. set Name=
  6. for /f "tokens=1" %%i in ('wmic logicaldisk where DriveType^=3 Get Name^|findstr ":"') do if not exist "%%i\Windows\explorer.exe" set Name=!Name! %%i
  7. set Drives=!Name!
  8. for %%i in (%Drives%) do if exist %%i\Users (
  9.         set Drive=%%i
  10.         goto ExitFor
  11.         ) else (
  12.         set Drive=%%i
  13.         )
  14. )
  15. :ExitFor
  16. SETLOCAL DISABLEDELAYEDEXPANSION
  17. echo %Drive%
  18. pause
复制代码
发表于 2024-1-24 21:44:27 | 显示全部楼层
回复 2# chishingchan


    "tokens=1" 可以省略
发表于 2024-1-24 22:58:04 | 显示全部楼层
试试
  1. powershell -command "&  Get-Partition | Where-Object isboot "
复制代码
 楼主| 发表于 2024-1-25 12:23:01 | 显示全部楼层
回复 3# ShowCode


    谢谢!
 楼主| 发表于 2024-1-25 12:23:36 | 显示全部楼层
回复 4# newswan


    这个与 XP 不兼容,谢谢!
发表于 2024-1-25 13:14:54 | 显示全部楼层
还有xp啊,现在很少见了
发表于 2025-12-26 09:06:29 | 显示全部楼层
你这个做法不太科学,要将公共目录搞成任意系统里的同一个盘符,不管进了哪个系统都是一样的盘符序列,这样桌面的位置甚至可以公用,桌面的快捷方式也都可以用。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 07:06 , Processed in 0.019015 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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