2014年11月20日木曜日

バッチ

バックアップのバッチ.
xcopy C:\Users\xxxxx E:\xxxxx\ /D /S /E /H /C /Y /R
のようにしていた.

E: ドライブはUSBでつないだハードディスクだが,フラッシュメモリ(USBメモリ や SD カード)をつないでいるとドライブ名が F: になったり G: になったりする.
xcopy C:\Users\xxxxx F:\xxxxx\ /D /S /E /H /C /Y /R
xcopy C:\Users\xxxxx G:\xxxxx\ /D /S /E /H /C /Y /R

それぞれ,bkup_E.bat,bkup_F.bat,bkup_G.bat といったファイル名にしてバックアップを取っていた.

でも,変数を使って,引数を代入したり,カレントドライブ名を代入したりすることができたはずだと思って,ネットで調べたらすぐ見つかって,次のように改造.

xcopy C:\Users\xxxxx %~d0\xxxxx\ /D /S /E /H /C /Y /R
これを外付けハードディスクに保存して,実行すると 変数「%~d0」 にそのディスクのドライブ名が代入される.

これで,ドライブ名が変わってもバッチファイルを変えることがなくなった.

実際は
xcopy C:\Users\xxxxx %~d0\xxxxx\ /EXCLUDE:%~d0\xcopy-excludelist.txt /D /S /E /H /C /Y /R > bkup.txt
として xcopy-excludelist.txt にバックアップの除外ファイル(拡張子が .$ で始まる一時ファイルとか)を指定して,bkup.txt にバックアップを取ったファイル名を保存.

0 件のコメント:

コメントを投稿

「コメントの記入者:」は「匿名」ではなく,「名前/URL」を選んで,なにかニックネームを入れてください.URL は空欄で構いません.