[ カテゴリー » PC関連 ]

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]

コンパイラを疑う前に

「~自分のプログラムを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]

Windows 7βを入れてみた

Windows7-Desktop

Windows 7を入れるにはVistaが動くマシンの方がいいのでしょうが、手持ちのそれはDell Vostro 1500ノートPCであり、HDD交換が面倒 & メインマシンの停止を意味するため、AthlonXP 2100+/768MB DDR RAM/GeForce 6800のデスクトップマシンに入れることに。

とりあえずインストールは問題なく完了。Vista世代から見ればかなり性能の劣るマシンですが、スワップの嵐ということも無くAeroデスクトップで動いてます。グラフィックドライバはWindows 7専用が必要らしく、nVidiaの場合はWindows Updateをかければインストールされます。

現時点気になったのは、
  • IEでページをスクロールさせたりウィンドウサイズを変更するとページ表示がちらつくこと。Vostro 1500のVistaではそんなことは無く滑らかですので、マシンの性能不足かWindows 7がβなせいだと思います。(2009/1/13 追記: トラブル後再起動したら気にならないレベルになりました)
  • ウィンドウを画面の端のほうに持っていくと枠が現れ、マウスボタンを離すとその枠の形にウィンドウが整形されてしまうこと。画面端にウィンドウをきれいに収める機能なのでしょうが、どうも余計なお世話。これはどこかの設定で変更できるでしょう。

nTuneLink 入れようとしたら、Install Shieldが起動中にOSごと無反応になってしまったので、今晩はここまで。

[2009/1/11 追記] どうもPC自体が古くなって不安定になっているらしい。もう一度nTuneインストールに挑戦したらすんなり入ったのですが、その後エクスペリエンス インデックス測定中に再びハングアップ、以後起動すらしなくなりました orz

[2009/1/12 追記] またメモリの接触が悪くなっていた模様。コネクタに問題があるのでしょうか。挿し直して現在Memtest86で確認中。

[2009/1/13 追記]
  • PSULink 動かず。おそらくGameGuardLink のせい。
  • nTuneはインストールできるものの、nVidiaコントロールパネルにクロック変更の項目が現れない。
  • Aeroデスクトップのサムネイル機能(画面下タスクバーにマウスカーソルを置くとそのアプリケーションの縮小画面が表示される)が強化されてますね。あまり使わないけどVista SP2にも入れてくれないかなぁ。

[2017/1/21] 文中の年がすべて2008だったのを修正

— posted by mu at 02:03 am   commentComment [0]  pingTrackBack [0]

ロボットをカウンターから除外

これを書いている時点でこのブログの来訪者カウンターは158,103となっていますが、9割以上は検索ロボットであることは分かってました。ppBlogLink のページを見ると検索ロボットをカウントしない方法が載ってましたので、先ほど変更完了。これからは現実に近いカウントがされると思います。あとカウンターの桁数も6桁表示されるようにしました。

[参考]

[2009/1/14 追記] 東京大学 喜連川研究室Link をカウント対象外に追加

[2009/1/23 追記] トレンドマイクロLink をカウント対象外に追加、WEBロボットのネットワークアドレス一覧へのリンク追加。

[2009/12/27 追記] User agent 'CamelStampede'をカウント対象外に追加。検索エンジンらしいLink

[2010/7/24 追記] User agent 'Googlebot'をカウント対象外に追加。ログにはGooglebot-Mobileと。

[2010/11/30 追記] アドレス'compute-1.amazonaws.com'をカウント対象外に追加

— posted by mu at 03:21 pm   commentComment [0]  pingTrackBack [0]

ThinkPad X31 2台目

blog20080915-ThinkPadX312nd

1台目が壊れたLink 後、復活していたThinkPad s30を使っていたのですが、電車に乗るとWindowsが起動する間に一駅、動画再生できるようになるまでに一駅、こんなに遅かったかと思うほど。起動直後はCPUがほぼ100%使用されているので、HDDのせいではないらしい。Windowsを再インストールすれば速くなるのかもしれませんが、動画再生がもたつく(こちらもCPU 100%)のはどうしようもない。

てなわけで、PentiumM 1GHz以上の持ち運び用ノートを買いなおしたら、また突然死爆弾がマザーにあるかもしれないThinkPad X31になりましたとさ。・・・バカかもしれない > 自分

今回は秋葉原で直接物を見た上で購入。なんかX31の相場が下がってる? 2週間前に見たときよりも8000円下げている店もありました。1台目よりも安く手に入れて喜んでいるのですが、来月見たらもっと安く売ってたりしてw

ネットで買って失敗した1台目のような、バックライトに斑が無いのは非常に気分がいいです。2台目は無線LANが付いてなかったので、1台目から移植。今後もいくつかの予備パーツは1台目から取れるでしょう。

— posted by mu at 06:37 pm   commentComment [0]  pingTrackBack [0]

T: Y: ALL: Online:
ThemeSwitch
  • Basic
Created in 0.0313 sec.
prev
2025.9
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