トップ回答者
WindowsPEでのシステムイメージバックアップ

質問
-
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のファイル名で保存したいです。
上記コマンドを短く入力する方法やバッチ等での方法はありますでしょうか?当方、余りコマンドやバッチ等は詳しくない為、そのまま使える形で教えて頂けると助かります。
宜しくお願い致します。
回答
-
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-------------------------------
- 回答としてマーク 栗下 望Microsoft employee, Moderator 2018年1月15日 2:09
-
oooohです。
再び投下。
※保存名に.wimは不要です。
--------------------------------
@echo off
echo list volume | diskpart
echo exit | diskpartset /p Source="イメージ取得元を入力(例:C:\) >"
set /p Dst="イメージ保存先を入力(例:F:\) >"
set /p Name="イメージ保存名を入力(例:Windows10_Cdrive) >"
cls
echo イメージ取得元 = %Source%
echo イメージ保存先 = %Dst%
echo イメージ名 = %Name%.wimset /p Select="上記で間違い無いですか?Y/N >"
if "%Select%"=="Y" goto CaptureImage
if "%Select%"=="y" goto CaptureImage
if "%Select%"=="N" goto exit
if "%Select%"=="n" goto exitgoto 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-----------------------------------
- 回答の候補に設定 栗下 望Microsoft employee, Moderator 2018年1月15日 2:07
- 回答としてマーク 栗下 望Microsoft employee, Moderator 2018年1月15日 2:09
すべての返信
-
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-------------------------------
- 回答としてマーク 栗下 望Microsoft employee, Moderator 2018年1月15日 2:09
-
お世話になっています。
教えて頂いた内容を.batにし「bk」のファイル名でシステムバックアップする同じUSBメモリーに保存して、
下記の方法で実行してみましたがエラーとなり終了てしまいました。エラー内容ではパスが違う様な内容ですが、
バッチも実行出来てますし間違ってないと思うのですが・・・内容的には、私が求めているとてる以上で、
こちらで可能であればとても助かります。
何がダメなんでしょうか?
宜しくお願い致します。-----------------------------------------------------------------------
X:\WINDOWS\system32?wpeinit
X:\WINDOWS\system32?wpeinitF:\bkdiskpart>
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にあります
続けるには何かキーを押してください-----------------------------------------------------------------------
-
oooohです。
再び投下。
※保存名に.wimは不要です。
--------------------------------
@echo off
echo list volume | diskpart
echo exit | diskpartset /p Source="イメージ取得元を入力(例:C:\) >"
set /p Dst="イメージ保存先を入力(例:F:\) >"
set /p Name="イメージ保存名を入力(例:Windows10_Cdrive) >"
cls
echo イメージ取得元 = %Source%
echo イメージ保存先 = %Dst%
echo イメージ名 = %Name%.wimset /p Select="上記で間違い無いですか?Y/N >"
if "%Select%"=="Y" goto CaptureImage
if "%Select%"=="y" goto CaptureImage
if "%Select%"=="N" goto exit
if "%Select%"=="n" goto exitgoto 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-----------------------------------
- 回答の候補に設定 栗下 望Microsoft employee, Moderator 2018年1月15日 2:07
- 回答としてマーク 栗下 望Microsoft employee, Moderator 2018年1月15日 2:09
-
ちょっと改造してみました。
@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