批次檔參考

批次檔參考

VHDX 操作

REM 建立新 VHDX 檔


@echo off


REM 批次檔所在資料夾

set dir=%~dp0


REM 產生指令檔,並執行之

REM 虛擬大小單位為 MB,1GB = 1024MB

echo create vdisk file=%dir%<檔名>.vhdx maximum=<虛擬大小,MB> type=expandable > %dir%cmd.txt

diskpart /s %dir%cmd.txt


REM 刪除指令檔

del %dir%cmd.txt >nul

pause





REM 建立 差分 檔


@echo off


REM 批次檔所在資料夾

set dir=%~dp0


REM 產生指令檔,並執行之

echo create vdisk file=%dir%<檔名>.vhdx parent=%dir%<父檔名>.vhdx > %dir%cmd.txt

diskpart /s %dir%cmd.txt


REM 刪除指令檔

del %dir%cmd.txt >nul

pause


REM 合併 差分 檔


@echo off


REM 批次檔所在資料夾

set dir=%~dp0


REM 產生指令檔,並執行之

echo select vdisk file=%dir%<檔名>.vhdx > %dir%cmd.txt

echo merge vdisk depth=<合併深度,通常為 1> >> %dir%cmd.txt

diskpart /s %dir%cmd.txt


REM 刪除指令檔

del %dir%cmd.txt >nul

pause


REM 於還原用差分節點或獨立管理用系統手動執行

REM 還原差分檔


@echo off


REM 批次檔所在資料夾

set dir=%~dp0


REM 刪除正常節點

del %dir%<正常節點檔名>.vhdx


REM 重新產生正常節點

echo create vdisk file=%dir%<正常節點檔名>.vhdx parent=%dir%<父檔名>.vhdx > %dir%cmd.txt

diskpart /s %dir%cmd.txt


REM 刪除指令檔

del %dir%cmd.txt >nul


REM 重開機

REM shutdown /r /f /t <秒數>

pause


REM 正常節點與還原用節點由相同父節點差分而來

REM 於父節點以工作排程或服務執行

REM 選單中還原用節點最好在正常節點之後或預設選擇正常節點

REM 磁碟代號需固定,否則路徑變動則無法正常執行

REM 還原後重開機


@echo off


REM 批次檔所在資料夾

set dir=%~dp0

REM 正常節點路徑

set normal_file=%dir%<正常節點檔名>.vhdx

REM 還原節點路徑

set recovery_file=%dir%<還原節點檔名>.vhdx

REM 還原節點路徑

set parent_file=%dir%<父節點檔名>.vhdx


REM 刪除正常節點

del %normal_file%

REM 刪除還原節點

del %recovery_file%


REM 若正常節點仍存在則表示目前以正常節點開機,結束程式離開

if exist %normal_file% (

    exit

)


REM 至此正常節點已不存在


REM 若還原節點不存在則表示目前以父節點開機,結束程式離開

if not exist %recovery_file% (

    exit

)


REM 至此還原節點仍存在


REM 目前進入還原節點,執行正常節點之還原

REM 重新產生正常節點

echo create vdisk file=%dir%%normal_file% parent=%dir%%parent_file% > %dir%cmd.txt

diskpart /s %dir%cmd.txt


REM 刪除指令檔

del %dir%cmd.txt >nul


REM 重開機

shutdown /r /f /t <秒數>

pause