2008年06月28日

バックアップのロジック変更

PC自作支援依頼があり、バックアップHDDの設置も同時に依頼である。一般家庭で使用するのだが、バックアップの重要性を認識されているのと、こちらで納品させていただいたPCのバックアップ方法に納得されたようである。

そこで、これまでのバッチ・コマンドを再確認して次の点を変更するよう検討した。

(1)これまでは「7世代保存」だったが、曜日によりバックアップを保存するフォルダを決定していたので、バックアップを取得しない曜日があると「最新7世代保存」にはなっていないので「最新7世代保存」できるように変更。

(2)発生する確率は少ないが、バックアップの取得が失敗したフォルダが残されていて別の曜日にバックアップを取得したら、これも「最新7世代保存」することにならない。

(1)への対応としては、「曜日によりバックアップを取得するフォルダを決定するのを止める」。7世代保存するのは変更しないが、バックアップを正しく取得する毎に次回は次のフォルダに取得するように進める。7回取得で一回りする仕様である。

(2)への対応としては、(1)での次回に取得するフォルダ名を決定するファイル名の変更をバックアップ取得の前に行うのではなく、バックアップが完了してから行う仕様とする。

スマートなコードでないが、こんな感じになる。
ドライブC、D、EをFドライブのFirst~Seventhフォルダにバックアップを取得する。
いつものようにバックアップの取得が終了したらPCの電源をオフにする。

rem ********************************************************
if exist F:\folderselect\selectfolder1.txt goto selfol2

if exist F:\folderselect\selectfolder2.txt goto selfol3

if exist F:\folderselect\selectfolder3.txt goto selfol4

if exist F:\folderselect\selectfolder4.txt goto selfol5

if exist F:\folderselect\selectfolder5.txt goto selfol6

if exist F:\folderselect\selectfolder6.txt goto selfol7

if exist F:\folderselect\selectfolder7.txt goto selfol1

:selfol1
set folder=first
echo %folder%
goto startbackup

:selfol2
set folder=second
echo %folder%
goto startbackup

:selfol3
set folder=third
echo %folder%
goto startbackup

:selfol4
set folder=fourth
echo %folder%
goto startbackup

:selfol5
set folder=fifth
echo %folder%
goto startbackup

:selfol6
set folder=sixth
echo %folder%
goto startbackup

:selfol7
set folder=seventh
echo first
goto startbackup

:startbackup
"D:\Rescue\DriveImageXML\dixml.exe" /bC /t"F:\%folder%\C-Drive\Drive_C" /s /v
"D:\Rescue\DriveImageXML\dixml.exe" /bD /t"F:\%folder%\D-Drive\Drive_D" /s /v
"D:\Rescue\DriveImageXML\dixml.exe" /bE /t"F:\%folder%\E-Drive\Drive_E" /s /v


if %folder% == first goto firstfolder

if %folder% == second goto secfolder

if %folder% == third goto thirdfolder

if %folder% == fourth goto fourthfolder

if %folder% == fifth goto fifthfolder

if %folder% == sixth goto sixthfolder

if %folder% == seventh goto seventhfolder

:firstfolder
rename F:\folderselect\selectfolder7.txt selectfolder1.txt
goto completed

:secfolder
rename F:\folderselect\selectfolder1.txt selectfolder2.txt
goto completed

:thirdfolder
rename F:\folderselect\selectfolder2.txt selectfolder3.txt
goto completed

:fourthfolder
rename F:\folderselect\selectfolder3.txt selectfolder4.txt
goto completed

:fifthfolder
rename F:\folderselect\selectfolder4.txt selectfolder5.txt
goto completed

:sixthfolder
rename F:\folderselect\selectfolder5.txt selectfolder6.txt
goto completed

:seventhfolder
rename F:\folderselect\selectfolder6.txt selectfolder7.txt
goto completed

:completed
C:\Windows\system32\shutdown -s -f -t 5

rem **********************************************************

これで「最新7世代保存」と言える姿になったかな。


https://www.ktservices3.com/

投稿者 owner : 2008年06月28日