1

在 USB 驱动器上使用 .bat 脚本我想在不使用 3rd 方软件的情况下更改它的驱动器号,并且对插入 USB 的系统有任何要求,但它是 Windows XP 或更高版本。

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

设置驱动器=%~dp0

这是E:例如

在我真正改变 E: 的驱动器号之前,如何自动找出 diskpart 卷列表中的卷号?

选择卷 E:

显然不行,你只能用n作为盘号。

编辑:

感谢@wOxxOm 的解决方案。这是我现在用来将脚本所在驱动器的驱动器号自动更改为 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:\ 上没有任何内容已安装

4

2 回答 2

1

解析如下所示的卷列表:

第 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
)

您还可以通过卷名 (use tokens=2,4) 或卷类型 (use tokens=2,6) 进行检查,如果卷名包含空格,则需要使用令牌编号进行一些小技巧。

于 2015-08-25T20:32:17.523 回答
0

批处理文件中的第三行set DRIVE=%DRIVER:~0,1%应该是,set DRIVE=%DRIVERAW:~0,1%

有了这个改变,它对我有用。

于 2021-02-23T15:17:45.377 回答