none
WindowsPEでのシステムイメージバックアップ RRS feed

  • 質問

  • WindowsPEでシステムイメージのバックアップを行いたいのですが、
    毎回バックアップを行う度に入力が大変だったりコマンドを打ち間違えもあるので、出来るだけコマンドを短くしたいです。

    バックアップを行う際のコマンドは下記で行っています。
    dism /capture-image /imagefile:E:\Windows10.wim /capturedir:C:\ /compress:fast /name:"Windows10.wim"

    diskpartからのListVolumeで見る保存先(USBメモリー)は「E」になっていますが、
    場合によっては[E」が[F」になってしまう事もあると思いますので、「Ltr」ではなく「Label」を指定したいです。

    保存先USBメモリーのLabel名は「BUCKUP」で、そこにCドライブのシステムイメージをWindows10.wimのファイル名で保存したいです。
    上記コマンドを短く入力する方法やバッチ等での方法はありますでしょうか?

    当方、余りコマンドやバッチ等は詳しくない為、そのまま使える形で教えて頂けると助かります。
    宜しくお願い致します。

    2018年1月10日 6:16

回答

  • oooohです。

    set /pを使ったバッチの例を投下。

    -----------------------

    @echo off

    echo list volume | diskpart
    echo exit | diskpart

    set /p Source="イメージ取得元を入力(例:C:\) >"
    set /p Dst="イメージ保存先を入力(例:F:\) >"

    cls
    echo イメージ取得元    = %Source%
    echo イメージ保存先    = %Dst%

    set /p Select="上記で間違い無いですか?Y/N >"

    if "%Select%"=="Y" goto CaptureImage
    if "%Select%"=="y" goto CaptureImage
    if "%Select%"=="N" goto exit
    if "%Select%"=="n" goto exit

    goto exit

    :CaptureImage
    echo.
    echo %time:~0,2%時%time:~3,2%分開始
    DISM /Capture-Image /ImageFile:%Dst%Windows10.wim /CaptureDir:%Source% /compress:fast /Name:"%date:~0,4%%date:~5,2%%date:~8,2%"
    echo %time:~0,2%時%time:~3,2%分終了
    pause

    :exit
    exit

    -------------------------------

    2018年1月10日 7:50
  • oooohです。

    再び投下。

    ※保存名に.wimは不要です。

    --------------------------------

    @echo off

     echo list volume | diskpart
     echo exit | diskpart

     set /p Source="イメージ取得元を入力(例:C:\) >"
     set /p Dst="イメージ保存先を入力(例:F:\) >"
     set /p Name="イメージ保存名を入力(例:Windows10_Cdrive) >"
     cls
     echo イメージ取得元    = %Source%
     echo イメージ保存先    = %Dst%
     echo イメージ名    = %Name%.wim

     set /p Select="上記で間違い無いですか?Y/N >"

     if "%Select%"=="Y" goto CaptureImage
     if "%Select%"=="y" goto CaptureImage
     if "%Select%"=="N" goto exit
     if "%Select%"=="n" goto exit

     goto exit

     :CaptureImage
     echo.
     echo %time:~0,2%時%time:~3,2%分開始
    DISM /Capture-Image /ImageFile:%Dst%%Name%.wim /CaptureDir:%Source% /compress:fast /Name:"%Name%%date:~0,4%%date:~5,2%%date:~8,2%"
     echo %time:~0,2%時%time:~3,2%分終了
    pause

     :exit
     exit

    -----------------------------------

    2018年1月11日 2:44

すべての返信

  • oooohです。

    set /pを使ったバッチの例を投下。

    -----------------------

    @echo off

    echo list volume | diskpart
    echo exit | diskpart

    set /p Source="イメージ取得元を入力(例:C:\) >"
    set /p Dst="イメージ保存先を入力(例:F:\) >"

    cls
    echo イメージ取得元    = %Source%
    echo イメージ保存先    = %Dst%

    set /p Select="上記で間違い無いですか?Y/N >"

    if "%Select%"=="Y" goto CaptureImage
    if "%Select%"=="y" goto CaptureImage
    if "%Select%"=="N" goto exit
    if "%Select%"=="n" goto exit

    goto exit

    :CaptureImage
    echo.
    echo %time:~0,2%時%time:~3,2%分開始
    DISM /Capture-Image /ImageFile:%Dst%Windows10.wim /CaptureDir:%Source% /compress:fast /Name:"%date:~0,4%%date:~5,2%%date:~8,2%"
    echo %time:~0,2%時%time:~3,2%分終了
    pause

    :exit
    exit

    -------------------------------

    2018年1月10日 7:50
  • お世話になっています。
    教えて頂いた内容を.batにし「bk」のファイル名でシステムバックアップする同じUSBメモリーに保存して、
    下記の方法で実行してみましたがエラーとなり終了てしまいました。

    エラー内容ではパスが違う様な内容ですが、
    バッチも実行出来てますし間違ってないと思うのですが・・・

    内容的には、私が求めているとてる以上で、
    こちらで可能であればとても助かります。
    何がダメなんでしょうか?
    宜しくお願い致します。

    -----------------------------------------------------------------------

    X:\WINDOWS\system32?wpeinit
    X:\WINDOWS\system32?wpeinitF:\bk

    diskpart>
     Volume###  Ltr Label      Fs      Type         Size   Status
     Volume0    C   Windows    NTFS    Partition    412GB 正常
     Volume1    D              NTFS    Partition    503GB 正常
     Volume2        Windows RE NTFS    リムーバル   450MB 正常 非表示
     Volume3        System     NTFS    Partition    100MB 正常 非表示
     Volume4        Recover im NTFS    Partition     14GB 正常 非表示
     Volume5    E   WINPE      FAT32   リムーバル  7556MB 正常
     Volume6    F   BACKUP     NTFS    リムーバル    58GB 正常

    diskpart>
    diskpartを終了しています
    イメージ取得元を入力(例:C:\) >C

    イメージ保存先を入力(例:F:\) >F

    イメージ取得元 = C
    イメージ保存先 = F
    上記で間違い無いですか?Y/N >Y

    指定しされたパスが見つかりません。
    DISM ログファイルはX:\WINDOWS\LOGS\DISM\dism.logにあります
    続けるには何かキーを押してください

    -----------------------------------------------------------------------

    2018年1月10日 23:58
  • すみません見落としてました。

    イメージ取得元を入力(例:C:\) >C

    イメージ保存先を入力(例:F:\) >F

    ではなくc:\ですね。

    丁寧に例まで書いて頂いているのに見落としていました。

    現在、再度実行しましたらエラーは表示されずバックアップを始めました。

    後ほど終わりましたら、再度ご連絡させて頂きます。

    2018年1月11日 0:47
  • oooohさんいつも有難う御座います。
    バックアップの方、出来ました。

    あの、更に甘えても宜しいでしょうか?
    私の求めていた以上の物でここまで出来るとは思っておりませんでしたので、
    もし可能でしたら、ファイル名も任意に付けられると助かるのですが・・・

    イメージ取得元を入力(例:C:\) >
    イメージ保存先を入力(例:F:\) >
    イメージ保存名を入力(例:Windows10.wim) >

    宜しくお願い致します。

    2018年1月11日 1:46
  • oooohです。

    再び投下。

    ※保存名に.wimは不要です。

    --------------------------------

    @echo off

     echo list volume | diskpart
     echo exit | diskpart

     set /p Source="イメージ取得元を入力(例:C:\) >"
     set /p Dst="イメージ保存先を入力(例:F:\) >"
     set /p Name="イメージ保存名を入力(例:Windows10_Cdrive) >"
     cls
     echo イメージ取得元    = %Source%
     echo イメージ保存先    = %Dst%
     echo イメージ名    = %Name%.wim

     set /p Select="上記で間違い無いですか?Y/N >"

     if "%Select%"=="Y" goto CaptureImage
     if "%Select%"=="y" goto CaptureImage
     if "%Select%"=="N" goto exit
     if "%Select%"=="n" goto exit

     goto exit

     :CaptureImage
     echo.
     echo %time:~0,2%時%time:~3,2%分開始
    DISM /Capture-Image /ImageFile:%Dst%%Name%.wim /CaptureDir:%Source% /compress:fast /Name:"%Name%%date:~0,4%%date:~5,2%%date:~8,2%"
     echo %time:~0,2%時%time:~3,2%分終了
    pause

     :exit
     exit

    -----------------------------------

    2018年1月11日 2:44
  • 有難う御座います。

    これでWindowsUpdateの度にバックアップも容易に出来ますし、
    打ち間違えもなくなり非常に助かります。
    リカバリーの時もお世話になり、大変有難うございました。
    2018年1月11日 5:32
  • ちょっと改造してみました。

    @echo off
    SetLocal EnableDelayedExpansion
    
    :Input
    
    cls
    echo;DiskPart 簡易表示
    echo;
                                  set "Drv= "
    for /f "delims=" %%0 in ('echo:list volume ^| diskpart ^| sort /+15 ^| find /i "volume" ^| find /v "###"') do (
     set        "Ltr=%%0"
           echo;!Ltr:~0,66!
     if  not   "!Ltr:~15,1!"==" " set  Drv=!Drv!!Ltr:~15,1!
    )
    
    echo;
    choice /c          %Drv% /M "イメージ取得元を選択 ※ 英字キーのみ押す ⇒ "
    call  set  Source=%%Drv:~!errorlevel!,1%%
    
    echo;
    choice /c          %Drv% /M "イメージ保存先を選択 ※ 英字キーのみ押す ⇒ "
    call  set     Dst=%%Drv:~!errorlevel!,1%%
    
    echo;
    
    set          Name=Windows10
    set    /p    Name="イメージ保存名を入力 ※ .wim 不要 Enterのみで「Windows10」) >"
    
    echo;
    echo;イメージ取得元    = %Source%
    echo;イメージ保存先    = %Dst%
    echo;イメージ名    = %Name%.wim
    echo;
    
    choice /c ync /M "バックアップ開始しますか? Y:開始 N:再入力 C:キャンセル ⇒ "
    
    if  "!ERRORLEVEL!"=="1" goto :CaptureImage
    if  "!ERRORLEVEL!"=="2" goto :Input
    if  "!ERRORLEVEL!"=="3" goto :eof
    
    :CaptureImage
    echo.
    echo %time:~0,2%時%time:~3,2%分開始
    DISM /Capture-Image /ImageFile:%Dst%:\%Name%.wim /CaptureDir:%Source%:\ /compress:fast /Name:"%Name%%date:~0,4%%date:~5,2%%date:~8,2%"
    echo %time:~0,2%時%time:~3,2%分終了
    pause




    • 編集済み 七辻屋 2018年1月11日 6:24
    2018年1月11日 5:41