タイトル通り、全ユーザーのGoogle Chromeのキャッシュを一撃で削除したい!
と要望があったのでやってみました(6時間ぐらい苦戦したような)。
ネットで探してもなかなか見つからなかったので、これから同じ目に遭遇するであろう人のために共有いたします。
結論はやく~!!って人のために先にコードを公開しましょう。
1 2 3 4 |
@setlocal enabledelayedexpansion echo %AppData\Local% for /d /r "C:\Users" %%A in ("\AppData\Local\Google\Chrome\User Data\Default\Cache") do del /q %%A pause |
これです。
ではこれまでのプロセスをまとめます。
状況の整理を行う
目的「全ユーザーのChromeのキャッシュを削除したい」
背景「シンクライアントサーバーの容量がいっぱい」
手段「クリーンアップツールじゃ消せないので、Batchを使おう」
ってことでBatchを使用、ちなみに一度も作ったことありません(笑)
あ、もちろんコマンドプロンプトは触ったことありますよ。
情報収集
目的を達成するのに必要なことは2つ
・各ユーザーのファイルパスを集めること
・ファイルを全件削除すること
まず、ファイルパスを集めるためにこちらの記事を参考にさせていただきました。
http://www.yamatyuu.net/computer/program/bat/for_files.html
上記記事の引用になりますが構文はこうなります。
for /d /r 検索対象フォルダー名 %%変数名 in (検索対象フォルダー名) do echo %%変数名
主にこれで助かりました。いやはや感動です。ありがとうございます。
そのときに作ったのがこちら
1 2 3 4 5 6 |
@echo off @setlocal enabledelayedexpansion for /d /r "C:\Users" %%A in ("\AppData\Local\Google\Chrome\User Data\Default\Cache*") do ( echo Y | del %%A ) pause |
問題発生
上記のバッチを実行したらできませんでした!!
指定のパスが見つかりません
うほ、エラー出た!!
ってことですぐに原因を探ります。
どうやらAppData(隠しファイル)を見つけきれていないことが判明
echo offを消してecho %AppData%で表示してあげる
はい、解決!!ついでにコードをスマートにしました
完成
1 2 3 4 |
@setlocal enabledelayedexpansion echo %AppData\Local% for /d /r "C:\Users" %%A in ("\AppData\Local\Google\Chrome\User Data\Default\Cache") do del /q %%A pause |
はい、無事完成!!
ちなみに/qオプションは確認メッセージを発生させないオプションです。
いやーすっきりした。
指定のパスが見つかりませんでかなり苦戦を強いられましたがいい経験でした。
お読みいただきありがとうございます。
P.S.
そういえばdelコマンドって完全削除なんですね。
そんな初歩的なことを知らずに作っていました(テストしているときに気づいた)。
テストのときとかは、指定したファイルがちゃんと動いているか確認するために
別フォルダにmoveしたりしたほうがいいですよ。