在USB驱动器上使用.bat脚本我想更改它的驱动器号而不使用第三方软件以及插入USB的系统的任何要求,除非它是Windows XP或更高版本。
要获取当前的驱动器号,我使用
设置DRIVE =%~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:\
上没有安装任何内容答案 0 :(得分: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
)
您还可以按卷名称(使用tokens=2,4
)或按卷类型(使用tokens=2,6
)进行检查,如果卷名称包含空格,则需要使用令牌编号。
答案 1 :(得分:0)
批处理文件的第三行,set DRIVE=%DRIVER:~0,1%
应该是,set DRIVE=%DRIVERAW:~0,1%
有了这个改变,它对我有用。