NASの容量圧迫はtrashboxが原因?不要なファイルとその一括削除方法で「大量に作成されるテンポラリーファイルは不要なので削除しましょう。」とお伝えしました。
上記記事ではいっぱいになってしまった時に一度だけなら良いのですが、定期的に作業するには大変です。
というのも操作を忘れてしまったり検索条件を忘れてしまったりするからです。
そこで今回はバッチファイルとタスクスケジューラを利用して定期的にNASをクリーンアップする方法を紹介します。
バッチとかタスクスケジューラって何?
という方でも大丈夫なようにバッチはコピー可能な手順付きです。タスクスケジューラも画像付きで手順を解説します。
もし分からないことがあれば、ページ下部のコメントなどで連絡ください。
NAS・trashboxの詳細や削除するファイルは前回の記事で紹介しています。
今回削除対象となるファイル
前回削除を推奨したファイルの内、テンポラリーファイルを削除対象とします。
- 拡張子がtmpのファイル
- ファイル名に~$がついているファイル
削除したくない場合はバッチの対象から外してください。
バッチの作成
まずは動かすバッチを作成します。
- STEP1テキストエディタを開く
- STEP2コマンドをコピーしてテキストエディタに張り付ける
- STEP3パスに対象NASのtrashboxを指定する
- STEP4拡張子batで保存する
テキストエディタを開く
テキストエディタはテキストを編集するためのアプリです。
メモ帳などインストール済みのアプリで構いません。
コマンドをコピーしてテキストエディタに張り付ける
次のコマンドをコピーしてテキストエディタに張り付けてください。
@echo off
rem 名前:delNasTrashTmpFile
rem 場所:\\〇〇〇.〇〇.〇.〇\trashbox
rem 目的:1週間経過したテンポラリーファイルの削除
echo pushd Directry
pushd \\〇〇〇.〇〇.〇.〇\trashbox
echo "*.tmp"deleting
forfiles /d -7 /m "*.tmp" /C "cmd /c del @file"
echo "Copy #*~$*"deleting
forfiles /d -7 /m "Copy #*~$*" /C "cmd /c del /a:h @file"
echo deleted
popd
詳細はページ下部で解説します。
パスに対象NASのtrashboxを指定する
テキストエディタにコピーしたコマンドの内、「\\〇〇〇.〇〇.〇.〇\trashbox」は対象NASのtrashboxのパスを指定してください。
下図赤枠の部分です。Ctrl+Lを押すとアドレスバーに移動できますので、そこからコピーしてください。
拡張子batで保存する
テキストエディタを普通に保存すると「.txt」という拡張子になります。
今回はバッチファイルのため、「.bat」という拡張子で保存します。
場所は自身のローカルディレクトリの任意の場所でかまいませんが、置き場を変えるとタスクスケジューラの設定を変える必要があります。
なるべく保存した場所から動かさないでください。
- STEP1名前を付けて保存を押す
- STEP2ファイル名を入力
- STEP3ファイルの種類を「すべてのファイル」に変更
ファイル名にこだわりがなければ「delNasTrashTmpFile.bat」などでいいかと思います。
特にファイル名はバッチに影響しません。
タスクスケジューラに作成したバッチを登録する
タスクスケジューラは決められた条件を満たすと自動で処理を命令するアプリです。
Windowsパソコンに標準で実装されています。
この機能を利用して、先ほど作成したバッチを定期的に実行させます。
- STEP1Windowsボタンからタスクスケジューラを検索して実行
- STEP2タスクの作成をクリック
- STEP3全般に名前を入力してトリガーをクリック
- STEP4新規をクリック
- STEP5実行間隔と開始を設定してOKをクリック
- STEP6操作をクリック
- STEP7新規をクリック
- STEP8プログラムに作成したバッチを指定しOKをクリック
- STEP9OKをクリック
- STEP10次回の実行時刻が正しければ完了
バッチコマンドの解説
今回作成したバッチコマンドを簡単に解説します。
@echo off
@echo offはコンソールの表示抑制です。次に解説するコメントアウトなどを表示しないようにします。
画面表示は処理として重いので、不要な表示はなるべく抑制しましょう。
rem 名前:delNasTrashTmpFile
rem 場所:\\〇〇〇.〇〇.〇.〇\trashbox
rem 目的:1週間経過したテンポラリーファイルの削除
remはコメントアウトです。コマンドとして認識されません。メモ代わりに使います。
echo pushd Directry
echoは後ろに指定した文字列や変数を表示します。今回は進捗を表示するために使っています。
pushd \\〇〇〇.〇〇.〇.〇\trashbox
popd
pushdはカレントディレクトリの移動です。cdとの違いは履歴を残せることとUNC パスを使えることです。
NASのディレクトリはUNCパスで指定するためpushdを使っています。
PowerShellならどっちでもいいのでは?
そうだったのか…
せっかくバッチ作ったから今回はこれで!
popdはカレントディレクトリを履歴の一つ前に戻るです。今回は戻った後に特に処理はしないのでなくても動きますが、おまじない程度に置いてあります。
forfiles /d -7 /m "*.tmp" /C "cmd /c del @file"
forfiles /d -7 /m "Copy #*~$*" /C "cmd /c del /a:h @file"
forfilesは条件に一致したファイルに対して指定した処理を行うコマンドです。
/dは更新日付の比較です。処理した日付と比較します。今回は1週間前なので-7を設定しました。もし3日にしたければ-3など適宜に変更してください。
/mは検索条件です。前の記事で紹介した条件からコマンドプロンプトに合わせて少し変更しています。
/Cは処理するコマンドを指定します。cmdでコマンドプロンプトを指定しています。
/cはコマンドプロンプトで行う処理を指定します。
delはファイル削除のコマンドです。/a:hはdelコマンドのオプションです。隠しファイルを対象にします。
@fileは対象がファイルであることを指定しています。
よくあるエラー
出る可能性があるエラーとその対処法を記載します。分からないことや載ってないエラーがあればページ下部のコメントなどで連絡ください。
ファイルが見つかりません
検索条件を見直してください。よくあるのが「*」をつけないであいまい検索になってない場合です。
CMD では UNC パスは現在のディレクトリとしてサポートされません。
今回使用しているコマンドプロンプトはNASへのディレクトリ移動にpushd以外を使うとエラーになります。
NASへの移動は全てcdではなくpushdを使ってください。
当サイトで掲載しているソースコードについて
この記載はプライバシーポリシーからの抜粋です。
著作権およびライセンス
ブログに掲載されている、ブログ管理者(そらしど)が本来権利を有するソースコードについては、ライセンスをCC0とします。
商用・非商用を問わず自由に利用していただいて構いません。その際の連絡も不要です。
免責事項
当サイトに掲載しているカスタマイズ情報のご利用にあたっては、必ずカスタマイズするファイルのバックアップをご用意の上、ご利用者様責任において実施していただきますようお願いいたします。
カスタマイズの実施により生じたいかなる不具合等についても当サイトはその責任を負いかねます。何卒ご理解、ご了承の上、当サイトをご活用いただきますようお願い申し上げます。
まとめ
バッチファイルとタスクスケジューラを利用して定期的にNASをクリーンアップする方法を紹介しました。
少しでもお役に立てれば幸いです。
分からないことや質問があれば下記から気軽に連絡ください。
最後まで読んでいただきありがとうございました。
BUFFALO NAS スマホ/タブレット/PC対応 ネットワークHDD 2TB LS210D0201G 【エントリーモデル】
コメント