批处理文件,以查找USB驱动器和更改驱动器号

时间:2015-04-16 20:11:57

标签: batch-file winpe

我正在尝试自动化我们的成像过程。我们有多个具有不同图像的计算机模型都存储在一个带有WinPE的USB驱动器上。我已经创建了一个脚本,使用Choice给我选项来选择我想要成像的计算机,但问题在于取决于我用什么计算机对USB驱动器进行成像字母改变。我正在寻找创建一个批处理文件,该文件将找到USB驱动器并更改驱动器号以表示" X:"这样Choice脚本可以使用静态驱动器号正确运行以查找图像文件。

我搜索并找到了一个脚本,它将按名称找到USB驱动器" Ace"并输出驱动器号,但无法弄清楚如何将该驱动器更改为" 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




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

由于

3 个答案:

答案 0 :(得分:2)

试试这段代码:

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
)

希望你觉得它有用。

答案 1 :(得分:0)

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

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

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

答案 2 :(得分:0)

您可以尝试使用此批次来查找已连接USB密钥的驱动器号:

@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