PowerShellで目的の時刻のファイルを削除

すでに販売してないでしょうが、東芝のTranscubeLink ってハードディスクビデオを持ってまして、こいつは録画した内容をMPEG2ファイルとしてPCにダウンロードする事ができます。で撮り溜めてはUWSCLink を使って自動でPCに移動、時間があったら見ようと思ってたら結構たまってしまいました orz

そのうち毎週録画していた番組がすでに最終回を迎えていたにもかかわらず録画し続けたものが結構増え、これを一気に削除したいなと。Transcubeのプログラムをアップデートするとファイル名が番組のタイトルになるという機能が付くのですが、これで自動ダウンロードをすると毎週録画の番組は古いファイルが上書きされてしまうため、あえて無意味な英数字の羅列がファイル名になる状態で使用してました。よってファイル名で削除する方法は使えず。

削除したいMPEGファイルの共通点は時刻。録画終了時刻がファイルの作成時刻になっているため、これを使えば確実に目的のファイルを選び出せます。しかし共通しているのは時刻だけで、日付は曜日以外に共通性なし。こういう時PowerShellだと以下のようにできます。
dir *.mpg | where {$_.LastWriteTime.Hour -eq 21 -and $_.LastWriteTime.Minute -eq 54 -and $_.LastWriteTime.DayOfWeek -eq 0} | del
dirコマンドで拡張子mpgを持つファイルのオブジェクト(System.IO.FileInfo)配列を作成、次のwhereでそのオブジェクトのLastWriteTimeが日曜日21:54になっているものだけを抜き出し、delコマンドで削除します。whereコマンドの指定が正しいか確認したい場合、最後のdelコマンドを打たなければdirコマンドの様に選ばれたファイルのリストが表示されます。

分かっている人には当たり前の内容ですね。UNIXでもPerlとか使えば可能でしょうがこちらの方がスマートですし、これが.NETというVisual StudioやASP.NETなどと同じ基盤を背景にして実行されているというのが興味深い。私としてはWindowsって95のころはつまらなかったのですが、バージョンが進むごとに面白くなってしょうがないです。でも7はVistaとほとんど変わりなしみたいで、つまらなさそうw

[2011/4/7 追記] アクセスログを見ると最も古いファイルを消すという内容で検索が入ってました。以下のでどうでしょう?
(dir | where {$_ -is [System.IO.FileInfo]} | sort LastWriteTime)[0] | del
(dir | where {$_ -is [System.IO.FileInfo]} | sort LastWriteTime)[0..2] | del
(dir | where {$_ -is [System.IO.FileInfo]} | sort LastWriteTime)[0,2,4] | del
2行目は最も古いのから3つ、3行目は最古・3番目・5番目(どういう状況だ?)を削除。便利だ。

— posted by mu at 09:07 pm   commentComment [0]  pingTrackBack [0]

なんか、ぐだぐだ

以前にも何度か書いた通り私はうつの治療中なのですが、通常3割医療費自己負担のところを障害者自立支援法によって1割負担になってます(この法律成立前は5%負担だったので、これから比べると負担増なのですがw)。

しかしこの法律の適用には対象の病気で治療中のほか、ある一定の収入がある人は対象外になります。先に書いた通り元々が5%だったためそこからいきなり6倍の3割は急激過ぎるという事で、一定期間収入に関係なく法律を適用する特別期間が設けられてまして、今年の3月末で特別扱いが終わる予定でした。

が、どうやら特別期間が延びるらしい・・・。いいのか、国家財政? 去年のガソリンといい、給付金といい、国民生活のためとか現状を見極めてという名のぐだぐだ感が漂ってきます。

この分だと地デジ完全移行も先送りですね。個人的には移行時期延期よりもB-CASLink 廃止を希望w。

— posted by mu at 11:04 pm   commentComment [0]  pingTrackBack [0]

PSU追加アップデート内容の一部公開

去年に発表されていたPSULink の追加機能、その予定内容が公開されましたLink 。気になった点を挙げますと、

対象はWindows版のみ
イルミナスクライアント無料配布をはじめたときに、有料版の発売から無料化への期間の短さとPlayStation2ユーザーにPC版への移行を勧める一文があったので薄々感づいてましたが、PS2は徐々に切り捨てる方向のようです。これ以上機能を追加しようにも、PS2の能力では限界なのでしょう。マシン能力の違いによるPCとPS2プレイヤー間の浅い溝は最初からありましたが、派手な演出が増えてくるに従い人数やプレイスタイルによるパーティー参加制限を設ける人が増えてます。
ネットワークによる更新で無料
おそらく今のプレイ人口ではDVDパッケージを作って販売しても採算が合わないのだと思います。PC版はその気になればネットワークで全部を入れ替える事も可能ですが、PS2はネットワークでの更新はメモリーカードに書き込める容量に限られ、大幅な更新となるとDVDを販売せざるを得ないはずです。PS2切捨ての理由はこちらの方が強いかも。
別料金で優遇オプション
DVDパッケージを販売しない以上、新機能の開発コストをこの方法で回収するらしい。無料オンラインゲームはこここそが唯一の収入源のためオプションの有無で別世界のプレイ環境になるらしいですが、PSUは固定料金との併用なのでそこまで露骨では無いと期待。ただ提供される内容の一部は過去イベント期間中に特典として半ばお約束的なものだったため、有料化されるということは今後そのような特典を得られる機会が減る可能性大。実際ここ数ヶ月提供されていないのは、この伏線だったのでしょうか。
ポイントでキャラクター能力値を変更
今までキャラクター固有の能力値は、キャラクターレベル・職業レベル(すぐに上限に達する)・種族・性別でほぼ一律に決まってしまい、アイテムくらいしか個人の特色を出せないものでした。個人的にはこれはちょっと期待しています。腕力を徹底的にそぎ落として法撃力(魔法力)に変えてやる~

なんか個人的にはオプション課金のためにPSUの魅力が減退した感じがするのですが、便利になる点もあるのでまずは様子見でしょうか。

[2009/1/22, 23] 最初の内容から大幅加筆

— posted by mu at 04:12 pm   commentComment [0]  pingTrackBack [0]

 

なぜ携帯を信用できる?

以前にも書いたかもしれない。

大統領就任演説時にワシントンDCの携帯電話が繋がりにくかった (Technobahn)Link らしいですが、似たような事は日本でも大晦日ら元日に変わるときに繋がりにくくなるLink などあります。

平常時の、しかも通話が増えると事前に分かっている状態ですらこの有様なのに、この前ラジオを聴いていたら非常災害時に備えて携帯電話をという投稿があり、私には理解しがたいです。

携帯の電池が3日くらい持つのは着信待ちのときだから。非常時につながらないといって何回もダイヤルしていては電池を消耗させるので、一日と持たないのじゃないでしょうか。

でも同ラジオで専門家が言っていた、「車は最高の災害時の避難場所。冷暖房完備、雨風しのげる、ラジオも聞ける、プライバシーもある程度守れる。」というのは、なるほどと思ってしまいました。これなら携帯電話の充電もできるので、携帯電話回線が落ち着くまでしのぐ事もできるかも。

— posted by mu at 01:21 am   commentComment [0]  pingTrackBack [0]

コンパイラを疑う前に

「~自分のプログラムを100回疑え」。大学でC言語を勉強していたときの先輩の言葉です。

別にこれはどの言語でも当てはまる事なのですが、特に(.NETを除く??)C/C++言語は実行時に変数型や値のチェック、自動型変換などほとんどやってくれないため、高速で曲芸的なことをするプログラムが書ける一方奇妙なバグを生みやすく、また奇妙ゆえ原因も分かりにくく、ついコンパイラやライブラリに問題があるのではないかと疑いたくなります。

しかしマイナーな製品ならともかく、MicrosoftやGNUのコンパイラ・ライブラリは出荷前はもちろんの事、出荷後も世界の多くの人が使用して動作を確認しているわけでして、そう頻繁に問題に出くわすわけはない。99%自分の書くプログラムに問題があるはずだから何回でも見直しなさい、というのが上の言葉の解釈です。

今日はTclLink から呼び出されるコマンドのWindows DLLをVisual Cで書いていたのですが、実行するたびに使用メモリが増えていく、いわゆるメモリーリークに悩まされていました。使用メモリの大きさから、この部分のメモリが解放されなければ計算上はつじつまが合うというのは目処をつけたのですが、解放する処理は行われているはずでなぜ解放されないのか分からない。Tcl拡張コマンド用DLLという特殊な物でもあり、なにかメモリを解放するライブラリにバグがあるのではと頭をよぎったのですが・・・

やっぱり私が悪うございました orz

別の箇所でまったく同じ量のメモリを確保していて、そちらを解放していなかったというお粗末な内容。

ちなみに私の経験の中で自分のプログラムが悪くなかった(と思う)のは、Windows 95のTrueTypeを描画するAPIだけです。まったく同じプログラムをWindows NTで実行したら何の問題も無かったので・・・

— posted by mu at 10:11 pm   commentComment [0]  pingTrackBack [0]

T: Y: ALL: Online:
ThemeSwitch
  • Basic
Created in 0.0225 sec.
prev
2025.7
next
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31