Lote para reatribuir a letra da unidade com base no nome do volume

0

Eu tenho um volume "WINPE" e estou tentando obter um script em lote que atribuirá a letra de unidade "Z:"

Alguém me deu o script abaixo, mas não funciona

    for /f %%D in ('wmic volume get DriveLetter^, Label ^| find "WINPE"') do set myDrive=%%D
    @echo off
    echo ===============================================================================
    echo.                          Mobile Repairs Install
    echo ===============================================================================
    echo.                   1 - Install Windows 7 Home Premium
    echo.                   2 - Install Windows 7 Prefessional
    echo.                   3 - Install Windows 8.1
    echo ===============================================================================
    echo.                            Press Zero '0' to Quit
    echo ===============================================================================

    echo off
    :begin
    echo Select a task:
    echo =============
    set /p op=Type option:
    if "%op%"=="1" goto op1
    if "%op%"=="2" goto op2
    if "%op%"=="3" goto op3
    if "%op%"=="0" goto op0


    echo Please Pick an option:
    goto begin


    :op1
    %myDrive%
    diskpart /s diskpartrans.txt
    imagex /apply install7Pre.wim 1 c:
    c:\windows\system32\bcdboot c:\windows
    c:\Windows\system32\shutdown /r /t 0
    goto end

    :op2
    %myDrive%
    diskpart /s diskpartrans.txt
    imagex /apply install7Pro.wim 1 c:
    c:\windows\system32\bcdboot c:\windows
    c:\Windows\system32\shutdown /r /t 0
    goto end


    :op3
    %myDrive%
    diskpart /s diskpartrans.txt
    imagex /apply install8.wim 1 c:
    c:\windows\system32\bcdboot c:\windows
    c:\Windows\system32\shutdown /r /t 0
    goto end

    :op0
    exit

    :end  
    
por Emery Williams 24.07.2015 / 22:11

1 resposta

0

Ok, eu percebi isso. Montei o WinPe boot.wim copiei o WMIC do meu windows 8.1 para o system32 dir e um morcego com esse código

    @echo off
    for %%a in (a b c d e f g h i j k l m n o p q r s t u v w x y z) do (vol %%a: 2>nul | find "WINPE" >nul
    if not errorlevel 1 set myDrive=%%a:)
    if "%myDrive%"=="" (echo Cannot find volume
    ) else (
    echo CD /D %myDrive%)>> output.bat
    )
    echo installs>> output.bat

    output.bat 

Isso define um lote de saída com a letra da unidade que eu preciso. Em seguida, ele executa esse arquivo em lote que se parece com isso

    CD /D h:
    installs
    CD /D g:
    installs

Isso executa meu lote de instalação, que é isso

    echo ===============================================================================
    echo.                          Mobile Repairs Install
    echo ===============================================================================
    echo.                   1 - Install Windows 7 Home Premium
    echo.                   2 - Install Windows 7 Professional
    echo.                   3 - Install Windows 8.1 OEM
    echo.                   4 - Install Windows 8.1 Professional OEM
    echo.                   5 - Install Windows 8.1 OEM UEFI
    echo.                   6 - Install Windows 8.1 Professional OEM UEFI
    echo ===============================================================================
    echo.                            Press Zero '0' to Quit
    echo ===============================================================================

    echo off
    :begin
    echo Select a task:
    echo =============
    set /p op=Type option:
    if "%op%"=="1" goto op1
    if "%op%"=="2" goto op2
    if "%op%"=="3" goto op3
    if "%op%"=="4" goto op4
    if "%op%"=="5" goto op5
    if "%op%"=="6" goto op6
    if "%op%"=="0" goto op0

    echo Please Pick an option:
    goto begin


    :op1
    win7pre.bat
    goto end


    :op2
    win7pro.bat
    goto end


    :op3
    win8bios.bat
    goto end


    :op4
    win8probios.bat
    goto end


    :op5
    8oemuefi.bat
    goto end


    :op6
    8prouefi.bat
    goto end

    :op0
    exit
    
por 28.07.2015 / 17:21