MultiPar同梱のpar2j.exeで任意のフォルダのリカバリファイルを作成するバッチ。

 あらかじめファイルを解析してリカバリファイル(Par形式)を作っておくことで、もしファイルが破損しても復元できるかもしれないMultiParというツールがある。リカバリファイルってのは、ファイルに対するパリティだとか、RAR書庫のリカバリレコードみたいなもんだと思っとけば、だいたいあってるんじゃないかな!

 Parは元々、転送エラー必至の通信環境でファイル転送を成功させるために作られたそうだが、耐用年数が気になる光学メディアや、S.M.A.R.T.が微妙に警告発してるようなHDDを使い続けなきゃならん環境とかでも大活躍だ。

 ただ、MultiParはGUIなんで、一括処理には向いてない。というわけで、同梱されてるCUIツール「par2j.exe」を使って、任意のフォルダのリカバリファイルを作成するバッチ書いた。

@echo off
echo ###########################################################################
echo #
echo # CreatePar2.bat
echo #
::   # MultiPar同梱の「par2j.exe」でフォルダのリカバリファイルを作成する。
::   #
::   # 引数なし:カレントフォルダ直下のフォルダを処理。
::   # 引数あり:引数のフォルダを処理。
::   #
echo ###########################################################################

if exist %1 goto arg
echo.
echo ### %cd% 直下のフォルダを処理します。 ###
echo.

for /d %%i in (*) do @call :create %%~si

goto end


:arg
for %%i in (%*) do (
cd /d %%~dpsi
echo.
echo ### %%i を処理します。 ###
echo.

@call :create %%~si
)


:end
pause
exit


:create
::↓Par2j.exeまでのフルパスにすべし。
par2j.exe c /sm16384 /sr100 /rr10 "%1\!rr10.par2" "%1\*"par2j.exe c /sr1000 /rr3 "%1\!sr1000rr3.par2" "%1\*"
exit /b

 正直、Parをぼんやりとしか理解してない輩が、英語ヘルプを機械翻訳してなんとなくで書いたのでry
 ブロック数多い方が(計算遅くなるが)、効率上がる(リカバリファイル小さくて済む)んだよ、な……? リカバリファイルは受け渡しするんでもなけりゃ、ひとつでもいいんだよな……?

 オプション変えてみた。

MultiPar -- 修復用データを作ってファイルの破損や消失に備える


[PR]
by lordnoesis | 2013-02-18 22:17 | テクノロジ | Trackback | Comments(2)
ブログトップ | ファンになる