Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # 説明:Live5chのDAT落ちした過去ログファイルを一括削除します。
- # 使い方:本ファイルをダブルクリック実行。
- # [ダブルクリックで実行する方法]
- # →ここ参照:http://devadjust.exblog.jp/22696383/
- # →ここ参照:https://qiita.com/tomoko523/items/df8e384d32a377381ef9
- # [本ファイルの置き場所]
- # どこでも良い
- # [FAQ]
- # Q. なぜ過去ログを削除するのか?
- # A. 過去ログが多くなると Microsoft Windows Search Indexer (SearchIndexer.exe) が重くなるため。
- # Q. 大事なファイルが消えたりしないか?
- # A. 「subject.txtに存在しない.datと.idxファイル」のみ削除します。
- # Q. HDDがガリガリいう
- # A. ファイルを削除するとしばらくして、上記 SearchIndexer.exe が走り、しばらくHDDがガリガリいいます。削除したファイルが1万ファイルだとガリガリいう時間は10分ぐらいです。
- # ユーザーから入力を受け付けて入力内容を $a に格納
- $a =(Read-Host Live5chのDAT落ちしたログを全て削除します。よろしいですか?[y/N] )
- echo $a
- if ( ($a -eq "y") -Or ($a -eq "Y") ){
- # Yes
- echo Yes
- }else{
- # No
- echo No
- pause
- exit
- }
- $script:total = 0 # 合計消した数
- function debug_show_path( ) {
- $curdir = Get-Location
- #echo "curdir=[$curdir]"
- $ichi = $curdir.path.IndexOf("Live2ch")
- if ( $ichi -eq -1 ) {
- $ichi = $curdir.path.IndexOf("Live5ch")
- }
- $tmppath = $curdir.path.Substring($ichi)
- #echo "tmppath=[$tmppath]"
- echo "debug_show_path:[...\$tmppath]"
- }
- function funcboard ( $server, $board )
- {
- echo $board
- Push-Location $board
- debug_show_path
- #dir
- $list = Get-ChildItem -Filter *.dat
- #echo $list
- if ( $list ) {
- foreach($a in $list)
- {
- #echo "--debug--"
- #echo $a
- try {
- $datfile = $(Get-ItemProperty $a).Name
- #echo "datfile is"
- #echo $datfile
- $ret = Select-String -Quiet $datfile subject.txt
- if ( $ret ) {
- #echo found
- } else {
- #echo not exist
- # もうsubject.txtに無いということはDAT落ちしているので、
- # 過去ログを消す
- $idxfile = $datfile.Replace(".dat", ".idx");
- echo "deleted $server/$board/$idxfile"
- echo "deleted $server/$board/$datfile"
- #exit
- Remove-Item $idxfile
- Remove-Item $datfile
- $script:total = $script:total + 1
- }
- } catch {
- # subject.txtが無いフォルダがある。その場合は例外が発生しここにくる。
- echo "Exception occured."
- }
- }
- }
- Pop-Location
- }
- function funcserver ( $server )
- {
- echo $server
- Push-Location $server
- debug_show_path
- $list = Get-ChildItem -Directory
- foreach($a in $list)
- {
- #echo "--debug--"
- #echo $a
- $board = $(Get-ItemProperty $a).Name
- funcboard $server $board
- }
- Pop-Location
- }
- function main() {
- # レジストリからLive5chのディレクトリを取得する
- $item = (Get-Item -Path "Registry::HKCU\Software\VB and VBA Program Settings\Live2ch\Path").GetValue("Path")
- $parentdir = Split-Path $item -Parent
- $basedir = Join-Path $parentdir "\log"
- $ret = Test-Path $basedir
- if ( -Not $ret ) {
- echo "ERROR: Live5chのlogフォルダが存在しません。[$basedir]"
- pause
- exit
- }
- #echo $basedir
- Push-Location $basedir
- debug_show_path
- #Set-Location $basedir
- $list = Get-ChildItem -Directory
- foreach($a in $list)
- {
- #echo "--debug--"
- #echo $a
- $name = $(Get-ItemProperty $a).Name
- #echo $name
- funcserver $name
- }
- Pop-Location
- }
- main
- echo "合計:[$script:total]ファイル消しました。"
- pause
Add Comment
Please, Sign In to add comment