- 締切済み
バッチファイルのコードを教えてください <m(__)m>
vista homepremium を使っています 日々のちょっとしたゴミ的なものを削除したいと思っています バッチファイルを使って ・Temporary Internet Files ・Temp のファイルをごみ箱を通過しての削除をしたいと思っています。 その他のゴミのようなファイルがあれば同時に削除できたらと思いますが、ちょっと思いつきませんでした。 自動でごみ箱やその他を削除するフリーソフトもありますが 今回は使用することはありません。 バッチ終了後に、 問題がなく終われば、「無事完了しました」 問題があれば、「異常あり」 などのコメントがでれば最高なのですが可能なのでしょうか。 初心者のため、いろんなサイトを回りましたがわかりませんでした。 皆様のお力をお貸ししていただけませんでしょうか よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- Yorisin
- ベストアンサー率54% (364/663)
私のPC(WinXP)ではうまく動作しているみたいで。 [アクセスできません]が表示されるという事は、ファイルがロックされているかパスがない場合でしょうか? IE、またはexplorerなどでファイルがロックされているのかもしれませんが、環境がないので現象はよく分かりません。 とりあえずバッチの解説のみします。 echo off は、以降のコマンドを表示しないようにする処理です。 @マークは、その処理のコマンドを表示しないようにする物です。 余計なメッセージを表示しないようにしているだけなので無くても良いのですが、表示されるメッセージが増えるので邪魔になるためつけました。 (一度削除して実行してみると違いがよく分かります) | @find "アクセスできません" は、delコマンドを行い、"アクセスできません"というメッセージが帰ってきたかどうかを判別します。 (アクセスできません~は、ファイルが使用中だった場合などに返されます。) もし"アクセスできません"というメッセージがあれば次の行の if errorlevel 1 goto ERR* が真となり、gotoが実行されます。 つまり、 del "C:\Users\USER\AppData\Local\Temp\*" /F /S /Q | @find "アクセスできません" if errorlevel 1 goto ERR* の二行で、ファイルを削除する処理を行い、 削除できない(ロック中の)ファイルがあればジャンプする という内容になっています。 バッチについては、これらのサイトを参考にしています。 http://itpro.nikkeibp.co.jp/free/NT/WinKeyWord/20040805/1/ http://www.fpcu.jp/dosvcmd/bbs/log/lan/ping/4-0014.html 参考にしてみて改良して下さい。
- Yorisin
- ベストアンサー率54% (364/663)
IE7のTemporary Internet Filespasuパスは ツール→インターネットオプション 全般タブ→閲覧の履歴の設定ボタン で確認できます。 Vista環境がないのでVistaでバッチが正常に動くかは確認できませんが、 これで試してみてください。
補足
ヒント、ありがとうございます アクセスできないとのメッセージが一瞬現れます 何か間違っているのでしょうか?? ↓↓↓コピペしたのはここから↓↓↓ @echo off del "C:\Users\USER\AppData\Local\Microsoft\Windows\History\*" /F /S /Q | @find "アクセスできません" if errorlevel 1 goto ERR1 echo Historyの削除は無事完了しました。 goto end1 :ERR1 echo. echo ********************************** echo 異常あり。 echo 削除できなかったファイルがあります。 :end1 del "C:\Users\USER\AppData\Local\Temp\*" /F /S /Q | @find "アクセスできません" if errorlevel 1 goto ERR2 echo Tempの削除は無事完了しました。 goto end2 :ERR2 echo. echo ********************************** echo 異常あり。 echo 削除できなかったファイルがあります。 :end2 ↑↑↑コピペしたのはここまで↑↑↑ @echo offや、 | @find "アクセスできません" などもそのままメモ帳に書いていますが@マークも入れていいんですよね? 素人なのでなかなかできません よろしくお願いします。
- Yorisin
- ベストアンサー率54% (364/663)
[ゴミ箱を通過して]が[ゴミ箱に入れずに即削除]という意味であれば、 こんなバッチでどうでしょうか? ユーザー名や削除対象のフォルダを環境変数で指定できるならこれをベースに直してください。 @echo off del "C:\Documents and Settings\USER\Local Settings\Temporary Internet Files\*" /F /S /Q | @find "アクセスできません" if errorlevel 1 goto ERR1 echo Temporary Internet Filesの削除は無事完了しました。 goto end1 :ERR1 echo. echo ********************************** echo 異常あり。 echo 削除できなかったファイルがあります。 :end1 del "C:\Documents and Settings\USER\Local Settings\Temp\*" /F /S /Q | @find "アクセスできません" if errorlevel 1 goto ERR2 echo Tempの削除は無事完了しました。 goto end2 :ERR2 echo. echo ********************************** echo 異常あり。 echo 削除できなかったファイルがあります。 :end2
補足
現在使っているパソコンがVISTAなので VISTAのパスとユーザー名で試してみたのですが ダメのようです… tempフォルダの場所はわかるのですが、 Temporary Internet Filesの場所がわかりませんでした。 ちなみに、IEの履歴の場所も探したのですがわかりませんでした。 わかりますか?
- jyutan
- ベストアンサー率43% (7/16)
それでしたら、”アクセサリ”の中にある”システムツール”のディスククリーンアップというアプリケーションを使ってみてはいかがでしょうか? 残念ながら成功時などのコメントはありませんが、失敗したらエラーはでると思います。
補足
さっそくのご回答ありがとうございます。 今回はバッチファイルを使っての対応をしたいと考えております。 よろしくお願いします。 クリーンアップは適度に利用しております。
補足
解説までしていただいてありがとうございます。 自宅にはもう一台のパソコンがあり(XP_Home)処理テストを行ったところ問題なく成功しました。 でもVISTAではダメみたいで… ということで少し考えを変えてみることにしました。(妥協ではない) IE履歴のデータを常に溜めず閲覧もできない方法として 読み取り専用のチェックを入れてみました。 Temporaryフォルダも同様にしてみました。 とりあえずこれで様子をみたいと思います。 まだまだ勉強不足ですね、私 バッチに関してはゆっくり勉強したいと思います。 ありがとうございました