用于查找 USB 驱动器并更改驱动器号的批处理文件

Batch file to find USB drive and change drive letter

我正在尝试使我们的成像过程自动化。我们有多个具有不同图像的计算机型号,所有图像都存储在一个带有 WinPE 的 USB 驱动器上。我已经创建了一个脚本,该脚本使用 Choice 到 select 为我想要映像的计算机提供选项,但问题是,根据我正在映像的计算机,USB 驱动器的盘符会发生变化.我正在寻找创建一个批处理文件,它将找到 USB 驱动器并将驱动器号更改为 "X:",以便 Choice 脚本可以 运行 正确地使用静态驱动器号来查看对于图像文件。

我搜索并找到了一个脚本,它可以按名称 "Ace" 找到 USB 驱动器并输出驱动器号,但一直无法弄清楚如何获取该驱动器并将其更改为 "X:"

for /f "tokens=3 delims= " %%A in ('echo list volume ^| diskpart ^| findstr "Ace"') do (set Acedrive=%%A)

我目前的情况是这样的:

echo off
cls
Echo Image Selection Menu
Echo =======================
Echo 1 Dell D820
Echo 2 Dell E6510
Echo 3 Dell E6520
Echo 4 Lenovo T431S
Echo 5 Lenovo T440S
Echo 6 Lenovo M73 Tiny
Echo =======================
Choice /C 123456 /M "What computer are you trying to image?"
If Errorlevel 6 goto 6
If Errorlevel 5 goto 5
If Errorlevel 4 goto 4
If Errorlevel 3 goto 3
If Errorlevel 2 goto 2
If Errorlevel 1 goto 1

Goto End

:6
cls
imagex /apply M73.wim 1 g:
Goto End

:5
cls
imagex /apply T440S.wim 1 g:
Goto End

:4
cls
imagex /apply T431S.wim 1 g:
Goto End

:3
cls
imagex /apply E6520.wim 1 g:
Goto End

:2
cls
imagex /apply E6510.wim 1 g:
Goto End

:1
cls
imagex /apply D820.wim 1 g:
:End

所以这基本上只是让我选择我正在成像的计算机,然后 运行s 为该 wim 关联的 imagex 命令。 任何帮助将不胜感激!

谢谢

您正在寻找 cd 命令的鲜为人知且使用频率更低的 /d 选项,除了移动目录外,它还会移动驱动器。

@echo off
for /f "tokens=3 delims= " %%A in ('echo list volume ^| diskpart ^| findstr "Ace"') do (set Acedrive=%%A)
cd /d %Acedrive%:\

请记住以管理员身份 运行 脚本,否则 diskpart 将在新的 window 中打开并且代码将无法运行。

你可以像这批一样尝试找到连接的U盘的盘符:

@echo off
Mode con cols=98 lines=10 & Color 9E
Title Searching the Drive letter of your USB Key by Hackoo 2014
echo.
ECHO   *******************************************************************************************
echo.
echo                           Searching the drive letter of your USB Key .......
echo.
ECHO   *******************************************************************************************
wmic logicaldisk get DeviceID,DriveType /Format:CSV > %Tmp%\tmp.txt 
for /f "skip=2 tokens=1-3 delims=," %%a in ('%COMSPEC% /a /c type "%Tmp%\tmp.txt"') do echo %%b %%c >> %Tmp%\tmp2.txt
for /f "tokens=1" %%i in ('%COMSPEC% /a /c type "%Tmp%\tmp2.txt" ^|Find "2"') Do (set MyUSBDrive=%%i)
Del %Tmp%\tmp.txt & Del %Tmp%\tmp2.txt
cls
echo.
ECHO   *******************************************************************************************
echo.
echo                          The drive letter of your USB Key is  %MyUSBDrive%
echo.
ECHO   *******************************************************************************************
pause

试试这个代码:

for /f "tokens=2,3 delims= " %%A in ('echo list volume ^| diskpart ^| findstr "Ace"') do (
set Acedrive=%%B
(echo select volume %%A
echo assign letter=X) | diskpart
)

希望对您有所帮助。