2015-04-16 2 views
2

Я пытаюсь автоматизировать процесс обработки изображений. У нас есть несколько компьютерных моделей с разными изображениями, которые хранятся на одном USB-накопителе с WinPE. Я дошел до создания сценария, который дал мне параметры, используя Choice, чтобы выбрать, на каком компьютере я хочу поместить изображение, но проблема в том, что в зависимости от того, какой компьютер я рисую, меняется письмо с USB-накопителем. Я ищу создать пакетный файл, который найдет USB-накопитель и изменит букву диска, чтобы сказать «X:», чтобы скрипт Choice мог корректно работать со статическим именем диска для поиска файлов изображений.Пакетный файл для поиска USB-накопителя и смены буквы диска

Я поиск и нашел скрипт, который будет найти диск 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

так Это в основном только дает мне варианты, чтобы выбрать, какие вычислительные r Затем я обрабатываю визуализацию соответствующей команды imagex для этого wim. Любая помощь будет принята с благодарностью!

Благодаря

+0

Возможно, пакетный файл не всегда является первым выбором ... –

+0

@ThomasWeller - Пакет более чем подходит для этого. – SomethingDark

+0

@SomethingDark: тогда я понял это неправильно, извините. Я думал, что он хотел бы назначить USB-накопителю другую букву диска, как вы можете сделать в управлении дисками Windows («Создание и форматирование разделов жесткого диска»), а не только CD. –

ответ

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 
) 

надеюсь, что вы найдете его полезным.

+0

Чувак твой гений. Спасибо огромное! Именно то, что я искал. – Chris

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 откроется в новом окне и код не будет работать.

+0

Я пытаюсь изменить букву диска от того, что компьютер присваивает ей, до x: \. Мой скрипт указывает на определенный диск, но если буква диска меняется каждый раз, тогда сценарий не работает. Извините за путаницу и спасибо вам, ребята, за помощь – Chris

+0

@Chris - Это именно то, что делает мой код. Он находит, что диск имеет строку 'Ace' в имени и изменяет диск на это. Как это не то, что вы хотите? – SomethingDark

+0

Извините. Я новичок в написании сценариев. Когда я запускаю скрипт, он просто меняет каталог на этот диск. Я ищу, чтобы заставить его изменить диск USB с d: на x: или любую другую букву, которую я выбираю. Я хочу переназначить его. Я знаю, что могу делать diskpart и запускать команды каждый раз, но я пытаюсь сделать это без присмотра. – Chris

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 
+0

Привет Hackoo. Я нашел сценарий, в котором будет указано, какая буква диска принадлежит моему USB-накопителю, но мне было интересно, есть ли другой сценарий для переназначения диска одной буквой на другую. – Chris