Batch file 在.bat中查找当前diskpart卷号

Batch file 在.bat中查找当前diskpart卷号,batch-file,disk-partitioning,drive-letter,Batch File,Disk Partitioning,Drive Letter,在USB驱动器上使用.bat脚本,我想在不使用第三方软件的情况下更改驱动器盘符,并且在插入USB的系统上没有任何要求,除了Windows XP或更高版本 要获取我使用的当前驱动器号 设置驱动器=%~dp0 哪一个是E:例如 在实际更改E:的驱动器号之前,如何自动在diskpart的卷列表中查找卷号 选择卷E: 显然不起作用,您只能使用n作为光盘编号 编辑: 感谢@wOxxOm提供的解决方案。 这是我的最后一个.bat脚本,我现在使用它自动将脚本所在驱动器的驱动器号更改为U:\ @echo off

在USB驱动器上使用.bat脚本,我想在不使用第三方软件的情况下更改驱动器盘符,并且在插入USB的系统上没有任何要求,除了Windows XP或更高版本

要获取我使用的当前驱动器号

设置驱动器=%~dp0

哪一个是E:例如

在实际更改E:的驱动器号之前,如何自动在diskpart的卷列表中查找卷号

选择卷E:

显然不起作用,您只能使用n作为光盘编号

编辑:

感谢@wOxxOm提供的解决方案。 这是我的最后一个.bat脚本,我现在使用它自动将脚本所在驱动器的驱动器号更改为U:\

@echo off
set DRIVERAW=%~dp0
set DRIVE=%DRIVER:~0,1%
if %DRIVE%==U exit
for /f "tokens=2,3" %%a in ('echo list volume ^| diskpart') do (
    if %%b==%DRIVE% set VOLNO=%%a
)
del %DRIVERAW%\diskpart.txt
echo select volume %VOLNO% > %DRIVERAW%\diskpart.txt
echo assign letter=U >> %DRIVERAW%\diskpart.txt
echo ^G
diskpart /s %DRIVERAW%\diskpart.txt
exit
如果不应将两个U安装到U上,您可以使用任何其他驱动器号替换这两个U:\


只需确保U:\

上没有装载任何内容即可解析如下所示的卷列表:

第6卷E MY_USB FAT32可移动971 MB正常

在提升的命令提示符下运行,或右键单击.bat文件并以管理员身份运行

for /f "tokens=2,3" %%a in ('echo list volume ^| diskpart') do (
    if %%b==E echo Volume number is %%a
)

您还可以按卷名(使用
tokens=2,4
)或卷类型(使用
tokens=2,6
)进行检查,如果卷名包含空格,则需要对标记号进行一些小技巧。

批处理文件中的第三行,
设置驱动器=%DRIVER:~0,1%
应该是,
设置驱动器=%driverraw:~0,1%


如果问题只是关于查找驱动器号,那么这个更改对我很有效。

显然是一个问题。@wOxxOm请在说它是副本之前阅读,我已经阅读了有关查找驱动器号的所有内容,但这不是我的问题。我知道驱动器号,但我需要它是diskpart中使用的卷号。@wOxxOm对不起,我不知道它是如何工作的。我尝试在bat文件和cmd中手动运行
echo list volume | diskpart
,但它所做的只是打开diskpart。我不熟悉使用for/f解析输出,尽管我以前经常使用cmd:/感谢您的快速响应,但它仍然只打开diskpart窗口,什么也没有发生(关闭时不返回任何内容,脚本结束)。对于Windows10来说,它不应该与任何其他版本有所不同,但这可能是问题所在吗?这是一个全新的装置。抱歉这么麻烦。。。脚本正是
@echo off NL for/f“令牌=2,3”%%a in('echo list volume^ | diskpart')do(如果%%b==U echo volume number为%%a NL,则为NL)NL pause
(NL为下一行)在命令提示符下运行
echo list volume | diskpart
,并将输出与答案中的引用进行比较。我手头没有确切的语法,但如果您尝试使用wmic@Marged,是的,但我听说WMIC可能被禁用/不起作用,尤其是在旧的XP上。无论如何,我在
wmic logicaldisk get
的输出中看不到适合diskpart的顺序卷号。行以
volume
number
字母
标签
开头,因此字母标记始终是第三个,而卷标是(或以)第四个标记,但可能跨越到更多的标记(第五个,等等)以防它有空格。