web-dev-qa-db-ja.com

ボリューム名に基づいてドライブ文字を割り当てるバッチ

「WINPE」ボリュームがあり、ドライブ文字「Z:」を割り当てるバッチスクリプトを取得しようとしています。

誰かが私に以下のスクリプトをくれましたが、それは機能しません

    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  
2
Emery Williams

わかりました。 WinPeboot.wimをマウントしました。コピーしたWMICをWindows8.1からsystem32ディレクトリとこのコードのバットにマウントしました。

    @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 

これにより、必要なドライブ文字を使用して出力バッチが設定されます。次に、次のようなバッチファイルを実行します

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

これが私のインストールバッチを実行します

    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
1
Emery Williams