読書とプログラミングを中心とした覚書ブログ

読書とプログラミングについて、日々経験したことを忘れないようにするため、極力ブログに記録を残すように頑張る。

MiniDV形式ビデオテープを撮影日時つきファイルでバックアップ[PowerShell版]

 公開日     更新日  2016/02/14

   

ferris-wheel-381787-2

去年からちょいちょいPowerShellを使い出しました。
勉強の一環で、ちょっとしたツール開発を通じてのPowerShell入門中です。

今回はこちらの記事(MiniDV形式ビデオテープを撮影日時ファイルでパソコンにバックアップ)で作った、ビデオテープをバックアップするツールを題材にして、すべてPowerShellで作りなおしてみました。

また、今回さらにPowerShellがBATファイルよりも強力で複雑な処理もできるため、単に作りなおすだけではなくもう少し凝ったこともやってみました

ツールの背景

ツール開発に至った背景は関連記事と同じで、リンク先に詳しく書きましたので良かったらこちらもご覧ください。
簡単に並べるとこんな感じです。

  • 自力でMiniDVテープをバックアップする需要があった。
  • カメラにバンドルされていた純正のバックアップツールだと、ファイル名とプロパティの設定が撮影日を元に作ってなかった。
  • とはいえ純正ツールのバックアップファイルには撮影日情報が格納されてあり、これを確認できるツールが見つかった。
  • 以上の経緯でファイル名とプロパティを書き換えるツールを作成!

PowerShell版のツールについて

関連記事の元々のツールは「取りあえず動くもの」としてBATファイルで作ったものです。
しかしながら、結局ファイルのWindowsプロパティがどうしてもPowerShellで記述しないといけなくなり、そのときも一部PowerShellを織り交ぜた作りになっています。
一部でもPowerShellを使っているのであれば、いっその事ぜんぶPowerShellでつくろう!と思いたち作り変えることにしました。

今回PowerShellの入門という位置づけなので、単に書き直すだけでも良いのですが、改良点を盛り込みます。

ダイアログで変換対象のディレクトリを指定する

BATファイルだった時から気になってたのですが、ツールの中にディレクトリ名を書き込むという作りだったので、変換したいディレクトリがたくさんあった場合に、ツールを実行する毎、ディレクトリ名を書き換えないといけないため、かなり面倒でした…。

そこで、こちらの記事にあるディレクトリの選択ダイアログを活用してわざわざ作り変える手間を撤廃してみました。

サブディレクトリも再帰的に実行する

ファイル・ディレクトリの操作は、PowerShellの強みの一つです。
ディレクトリを指定して、そのさらに下に続く全てのディレクトリ一式を変換対象とするのはお約束だと思いますので、当然盛り込みました。

さすがに深いディレクトリ構造でビデオを格納する使い方は稀だとは思いますが、BATファイルで実現しなかった自己満足として、再帰的に走査するという作りにしてみました。

ソースコード(PS1コード)

今回作ったPowerShellファイルを掲載します。

 外部コマンド実行について(補足)

PowerShellでの外部コマンド実行は難易度が高いようで、Web検索するといくつか似たサンプルコードが見つかります。
今回は以下のサイトで公開されているコードを参考にさせていただきました。

ツールの使い方

※念のためテスト用にビデオのコピーを格納したディレクトリを用意することで、きちんと動作することを確認して下さい。

  1. PS1ファイル中の★箇所を書き換える。以下3箇所。
    • 21行目の「D:\<Video Dir>
      変換したいファイルが格納されているドライブ/ディレクトリにします。
      これはディレクトリの選択ダイアログに表示されるデフォルト値であり、実行時に変更できます。
    • 24行目の「.avi」
      変換したいファイルを一覧できる表記にします。ここでは拡張子.aviのファイルを一覧にしてます。
    • 27行目の「C:\<MediaInfo CLI Install Dir>」
      MediaInfoファイルをインストールしたドライブ/ディレクトリにします。
  2. 変換したいファイルを、1番の21行目で指定したドライブ/ディレクトリに格納する。
  3. ツール(PS1ファイル)を右クリックメニューから「PowerShellで実行」を選択する。
  4. 表示されるダイアログにて、変換対象のファイルが格納されているディレクトリを選択する。

最後に

個人的には今のところBATファイルで変換すべきビデオはひと通り変換が完了していて、それ以来の本ツール本格活用はしてません。
あくまでPowerShellでの勉強用途および機能拡充が目的でした。
本当はMediaInfoにはもっと多くの情報が詰まっていて、再度、変換する契機はある気がしたのですが、未だ沈黙を守っています。

ツール作成による効果は不明ですが、PowerShellの勉強として最近学んだ事柄をひと通り試せたので良しとします。

 

レスポンシブ広告

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Time limit is exhausted. Please reload CAPTCHA.

  関連記事

.NETダイアログが表示されずスクリプトが止まる問題の対策

PowerShell入門中です。 先日のこちらの記事(PowerShellでダイ …

PowerShellでダイアログを表示し入力結果を取得

PowerShellの入門中です。 今回はPowerShellスクリプトからのW …

デジタルビデオカメラに広角レンズを取り付ける

我が家で使っているビデオカメラは、2009年製のSonyハンディカムHDR-CX …

PS1スクリプトを動かすための設定

PowerShellは最近のWindowsで追加されたスクリプト言語で、今のWi …

MiniDV形式ビデオテープを撮影日時つきファイルでバックアップ

我が家では旅行や行事など、ホームビデオの撮影ペースが毎月それなりにあります。 3 …

PowerShellの開発速度の改善を考える

私はどちらかというとWindowよりもUNIXの方がなれてますが、仕事ではWin …

MiniDV形式ビデオテープを撮影日時つきファイルでバックアップ[PowerShell版]