スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

フォルダ内のファイルをランダムに開く!

今日はプログラミングの話題です。
梅雨に入りましたし、家の中でブラウザばかり見てるだけではなく、何か学習してみましょう!みたいな。

ちなみに今日のお題は「フォルダ内のファイルをランダムに開く」です。
たとえば、とあるフォルダに画像ファイルがたくさんあるが、その中のどれか1つを開く、そのとき、
どのファイルが選ばれるかは運次第
というシチュエーションです。

まぁはっきり言ってプログラミング的には全然難しく無い話ですが、
それをコマンドプロンプトでやってしまおうっていうのが今回のキモです。
では、見ていきましょう。

まず、以下を選択してコピーし、メモ帳に貼り付けて、適当な名前で保存します。


@echo off
cd /d %~dp1
cd
for %%f in (*.jpg) do set /a i=i+1
set RANDVAL=%RANDOM%
set /a RESULT=%RANDVAL% %% %i%
echo %RANDVAL% %% %i% = %RESULT%
for %%f in (*.jpg) do call :sub %%f
goto :fin
:sub
set /a N=N+1
if %n% EQU %RESULT% start %1
goto :eof
:fin



じつは適当な名前では動かないので、保存した場所をエクスプローラーで開き、
拡張子をBATに変更します。
そしてこのBATのショートカットを、
C:\Users\<ユーザ名>\AppData\Roaming\Microsoft\Windows\SendTo
に作成してください(これは、Vistaとか7の場合です。WindowsXPは違うので注意)

そして画像フォルダに行き、適当に1つファイルを選択してから、
送る→適当につけたBATファイル名
を実行すると、数秒後にフォルダ内の一つのファイルが開かれます。
(画像ならば、その画像ファイルを開いてくれるでしょう)
画像とかテキストとか当たり障りのないファイルが置いてある場所で実行するようにしてください。
変な実行ファイルとかが置いてあると、間違って実行してしまう可能性があります。
とか注意事項を書いてても、注意してくれない人がいると思うので
jpg画像のみしか対象にしない仕様に改造してあります。

まぁどうしても他の種類のファイルを扱いたければ、以下を読んで改造しなおすか、プログラムを作りましょう。

それでは、各行の解説です。


@echo off
これはお馴染みですよね。見栄えを綺麗にするという感じで、いちいちコマンドラインを表示させない指定ですね。


cd /d %~dp1
SendTo経由で呼び出されると、いちおうファイル名も貰えるのですが、そのファイル名は、%1変数に
入ってきます。この%1の中は、ドライブ名(d)+フォルダパス(p)+ファイル名(n)という構成
になっているので、ドライブ名とフォルダパスを
%~dp1
このようにして抽出し、そこにcd(チェンジディレクトリ、移動)するようにしています。


cd
cdコマンドは、引数無しの場合、現在のディレクトリ名(フォルダパス)を表示します。

for %%f in (*.jpg) do set /a i=i+1
フォルダのファイルを数えています。ここで対象にしているのは、先ほどチェンジディレクトリしてきた
フォルダ内の*.jpgファイルとなります。
この*.jpgを書き換えれば、別のタイプのファイルを扱えますが、下のほうにも同じように*.jpgと
書いてある部分も書き換える必要があります。

set RANDVAL=%RANDOM%
これは乱数取得しています。

set /a RESULT=%RANDVAL% %% %i%
取得した乱数は0~32768の数字です。
これをさきほどのファイル数で、割り算し、あまった数値を %RESULT%変数に入れています。

echo %RANDVAL% %% %i% = %RESULT%
上の割り算の計算式を画面に表示しています。

for %%f in (*.jpg) do call :sub %%f
フォルダの全ファイルに対して、:sub処理を呼び出しています。


:sub
ファイル毎に呼び出される:subの始まりを表しています。

set /a N=N+1
変数Nを1増やします。最初の変数Nの値は0なので、1ファイル毎に1増えていきます。


if %n% EQU %RESULT% start %1
さきほど計算した、乱数値をファイル数で割った余りの値と、
上の行で計算した変数Nの値を比較しています。
同じであれば、Start命令をかけます。
Start命令は、ファイルを開く、という行為になります。
今回はJPGファイルを対象としているので、画像が画面に表示されることになります。

goto :eof
:subが終わった事を意味します。:subが終わると、呼び出しもとの
FOR文に処理が戻ります。

goto :fin
これは、:subの前にあります(今回は解説用にこちらに持ってきただけです)。
この命令が来ると、:finにジャンプします。

:fin
ラベルだけ書いてあります。この後ろに行がなければ、
batファイルの実行は終了します。




スポンサーサイト

久々のメイポ

ゴールデンウィークということもあり、久々にメイプルにLogInしました。

2次パスワードっていうんですか?あのマウスでテンキーをクリックするヤツ、間違えて焦りました。
最終的に番号は正しいのを打ち込めたのでログインは出来ましたが。

メモのためにここに書いておこうかしら(ウソです。パスワードは絶対に他人に教えたり他人に見られる場所に書いておいたりしてはいけません。声に出して言うことも、してはいけないのです)。

さてさて、久々にログインしてみましたが、ここ2年くらいは全く進化が無い私でして、
いまさらレベルを上げる気も起こりません。

しかも友達も皆ほとんど引退状態?とゆーか、サブのキャラを作ってそっちでゲームしてるか、ほんとうに引退しているかのどちらか、と思われます。ですので、友チャも静かな状態。

だった筈ですが、昨日はゴールデンウィーク。さすがに祝日3連であればログインする人も増えるようです。
20110504_063.jpg

ギルドの人や、友録していた人と何人かと話をすることができました。

ただ、そこで感じたのは、


日本社会の緩やかな崩壊



でした。
何を急に!とお思いになるかもしれませんが、

  • 会社がつぶれた
  • 高校を退学になった
  • 会社でリストラがあって会社辞めた

チャットした内容が、こんな感じだったのですよ。
2つ目は本人の問題なのかもしれませんが、
1つ目と3つ目は、雇用に関わる大問題ですよね。

つまり、景気がそんなに良くなくて何とかギリギリでやっていた状態が今年の最初だったとすると、
そこに3月11日の大震災が来て、とどめを刺された会社が出て来て、
多くの雇用が失われつつある、、、、
そんな中で、これまでの贅沢に慣れきって、しかも社会生活に適合できない若者も多く出現、となると


国をどうやって立て直せばいいのか?


みたいな話になってしまいそうな気がするわけです。
ただし、その辺を何とかしてくれそうなスーパーヒーローも居ないわけで(政治家もダメっぽいし)
下手すると


八方ふさがり、負のスパイラル


という事も考えられなくもない。

一部の企業の雇用悪化、倒産増加

雇用に対する不安の増加

消費低迷(先行き不安で貯蓄に走る)

企業の業績の悪化(モノが売れない。値下げ競争)

さらなる雇用悪化、倒産増加(会社がつぶれたりリストラされるとニュースになるからねぇ)

雇用に対する不安の増加(マスゴミの煽りもひどくなるかも)

消費低迷(今回のこのブログのような記事も原因の一つになるのかも)

企業の業績の悪化(海外で売れればいいんだろうけど)

倒産増加(失業率があがってくるのかと・・・)

雇用に対する不安の増加(マスコミがどんどん書くのでしょうな)

消費低迷(どこまで低迷するでしょうかね)

業績の悪化

恐いですね。
オンラインゲームなんてやっている場合じゃないかもしれませんね(汗

ただ、救いがあるとすれば、


会社がつぶれた人は、別の会社に転職出来ていて、人生としては廻っている


という話ですね。
リストラの人は、結局、次の仕事があるのかどうか聞けていませんが、少なくとも片方は別の職につけたのですよ。あと高校やめた人も別の高校で勉強は続けていて、まぁなんとか頑張っているという話。

つまりこれは


崩壊ではなく、再編成に伴う痛み


という考え方もあるわけです。
つまり、これまで儲かっていた会社は儲からなくなっているが、みんながみんな儲かっていないわけではなく、
少なくとも別の会社は成長していて人も必要とされている!
世の中の仕組み自体が、少しずつ、次の時代に合うように変わりつつある・・・
自分の立ち位置が変わっていく事をみな受け入れるようになる・・・

という事だとすれば、


日本崩壊なんて大嘘


とも言えるわけです。

一時的に崩れているように見えるのは、中身が整理されている途中だからだ、というわけですね。
まぁその「整理」が直接関係してきそうな場合、つまり、会社がつぶれたりクビになったりしそうな場合は、
それに耐える精神力とか、次の雇用をGETする精神力とかが必要とされるわけで、
それはそれでキツイことかもしれませんが・・・
これまでも何とかしてきたらしいので
(第二次世界大戦後の話とかさ)
今後も何とかしていくしかないであろー、

という事ですな。

まぁ最悪、様々な贅沢は、高嶺の花になっていくかもしれませんが。
(そもそも、国の人数が減っているのは間違いないわけで、どうしてもお金の巡りは悪くなるわね)

がんばっていきましょう、したたかに。

地デジ録画 BUFFALO DT-H50/U2 USB

地デジの録画予約をパソコンでやっている人は居ますか?
私はやっています。録画予約を実施する方法は下記の2つです。

  1. ノートパソコンのTV機能
  2. 外付けUSBのTVチューナ



1つめは、ノートパソコンのTV機能です。こいつはなかなか凄い。
TOSHIBA の QOSMIO ですが、特徴をあげると、、、

  • 録画予約していると、勝手に電源が入り、録画を始めてくれる。
  • 録画画質が最高しか選べないのですぐディスクがなくなる。


一つ目の特徴が凄いのは、ログオンユーザを決めておけば、夜中の深夜アニメでも何でも
勝手に電源が入って勝手にログインして勝手に録画してくれる点です。
かなりの安心感で任せられる感じです。
ただ、2つ目の特徴で、ディスク喰いであり、DVD-RAMにMOVEしないと、すぐにディスク満杯になってしまう
ところが、玉に瑕(きず)というところでしょうか。ちなみに移動先は、DVD-R等は選択できず、DVD-RAMのみと
なります(CPRMのDVD-RAM)。



さてそれでは、今日の本題の外付けUSB 地デジチューナの話と参りましょう。

ネット上でも悪評が高い、BUFFALO の DT-H50/U2 を私は使っています。
製品のWebページは、↓
地デジチューナー「DT-H50/U2」 | BUFFALO バッファローindex_h1bg_01.jpg

これの特徴をあげましょうか。

  • 起動が遅い。10分くらいかかることがある
  • 希に録画予約を失敗する
  • 録画予約時に動いていても0バイトのファイルが出来ていたりする
  • 外してもいないのに「B-CASカードが取り外されました」とか言う


という感じで、「起動が遅い」とか「希(まれ)に、録画予約失敗」というところが、
非常に残念ですね。

まぁこれからこの製品を間違って買ってしまう人は少ないと思いますが(なんせもう在庫限りの販売ですから)、
既に買ってしまった人で、私と同じ穴に落ちた人のために一つ、解決策を書いておこうと思います。

今回発生した問題は、次の通り。

  1. 起動にめちゃくちゃ時間がかかるようになってしまった(起動が遅い)
    ⇒そのせいでネットの実況に乗り遅れる等の弊害もあった
  2. 最終的には、数時間放置しても起動しなくなった
  3. さらに、起動しなくなるばかりか、パソコンが固まって動かなくなってしまった(強制電源断の繰り返し)
  4. 過去に録り溜めた動画が大量にあるがみれなくなってしまった


という悲惨な状況でした。これについては、色々考えた結果、

地デジの録画は、家電(PanasonicとかSONYとかのデッキ)に任せるのが一番

という結論に至りましたが、とはいえ、パソコンには録画済みファイルも多量に残っていまして、
これをなんとか見れるようにしたいし、やっぱりパソコン画面に地デジ番組が映るのは非常に便利
なので、なんとかしたい。ワンセグという手もあるけど、画質はイマイチだし・・・

今回の対処方法は以下の通りです。

  1. PCを起動、地デジソフトは動作させない。
  2. 録画ドライブの Recorded TVフォルダにあるファイルの容量を確認する。私は400ギガバイトを超えてました。こりゃ大量すぎるわ・・・。今回はこのフォルダへのケアを中心に行います。
  3. PCast TV for 地デジのアンインストール
  4. 録画ドライブの「Recorded TV」フォルダの名前を「Recorded TV.u」に変更。
  5. ウィルス対策ソフト(私は、ウィルスバスタークラウド2010)の設定で、
      下記2つのフォルダ
    • Recorded TV フォルダ
    • Recorded TV.u フォルダ
    をスキャンの対象外に設定
  6. DT-H50/U2のドライバを「念のため」再インストール
  7. PCast TV for 地デジを再インストール
    ※注意※この時、CDキーが必要になります。買ったときのCDに書いてあります。あと、アップデートもBUFFALOからダウンロードしておきましょう。
  8. PCast TV for 地デジ をアップデート
  9. 再起動などはインストール時の指示通りに実施し、その後、PCast TV for 地デジを起動、セットアップする。
  10. フォルダ Recorded TV.u にあるファイルのうち、少しのファイルを選択し、切り取って、 Recorded TVフォルダに移動します。
  11. PCast TV for 地デジを起動
  12. 設定を押して、録画先ドライブを確認する。Recorded TVフォルダのあるドライブが入ってますね?なければ追加しておく。
  13. ファイル一覧メニューに移動。さっき移動したファイルは出ていません!
  14. ここで「ムーブ」を選択すると、さっき Recorded TV.u フォルダから移動させたファイルの番組名が出て来ます。ファイルを一つ選択すると、「再生」ボタンが出て来ますので、これで視聴が可能です。


起動が遅かったのは、次のようなメカニズムだと思われます。

  • PCast TV For 地デジが呼び出される
  • 過去の録画ファイルを読み込みに Recorded TVフォルダにアクセスする
  • ウィルス対策ソフトが、ファイルにウィルスが含まれていないか検査しようとする
  • 地デジの録画ファイルはでかいので、ウィルス対策ソフトによるファイルスキャンに時間がかかる
  • ウィルス対策ソフトの動作は、システム上一番優先順位が高いため、他の動作(マウス操作など)が固まったように見える


ファイル容量がすくない間は、Recorded TVフォルダのスキャンを待つだけで済みますが、ファイルが増えてくる
とウィルス対策ソフトのスキャン時間がどんどん延びて、延々またされるはめになるというわけです。

だから、

  • ウィルス対策ソフトのスキャン対象から Recorded TVフォルダを解除する
  • Recorded TVフォルダを別の名前にすることで録画ファイルが無い状態に戻す(ファイルは残したまま)

ということで、起動がもの凄く軽くなる、というわけで、ファイルも残っているのでなんとか見れるわけです。
ただし、ファイルを全部戻すと、前のような重い動作になることも考えられるのですが、
その辺の対策はよく判らないです。。。

とりあえず、見れればいいか、ってことで。

(注意書き:本記事は、製品の動作を保証するものではありません。各自で本記事の類似行為を行うことについては一切の責任を持ちません。あしからず)

Template Designed by DW99

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。