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)
トラックバックURL : http://poimono.exblog.jp/tb/19289992
トラックバックする(会員専用) [ヘルプ]
※このブログはトラックバック承認制を適用しています。 ブログの持ち主が承認するまでトラックバックは表示されません。
Commented at 2013-03-11 08:55 x
ブログの持ち主だけに見える非公開コメントです。
Commented by lordnoesis at 2013-03-11 17:51
ありがとうございます。
今時のPCは高速だし、バッチ処理なら時間気にしなくていいのでは?と勢いで設定しましたが、特にブロックサイズについてうっかりしてました。再検討してみます。
名前
URL
画像認証
削除用パスワード

※このブログはコメント承認制を適用しています。ブログの持ち主が承認するまでコメントは表示されません。

ブログトップ | ファンになる