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

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

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の勉強として最近学んだ事柄をひと通り試せたので良しとします。

 

レスポンシブ広告

Comment

  1. 荒川 智 より:

    はじめまして。
    昔のデジカメで撮ったビデオをリネームしようとしたのですが、
    撮影日の情報書式が違うため、プログラムが途中で止まってしまいます。
    何度やっても「Recorded_Dateが取得できませんでした。」となってしまいます。
    以下のように対応しているのですが、お時間があればアドバイスお願いします。

    30行目 Recorded_Date を Mastered_Date に修正
    139行目 撮影日の書式の整形方法がうまくいかない 
     DDの後の”/ ” の変換
     SSの情報がない

    以下 私の機種のInformです。

    General
    Complete name : D:\EXCILM\CIMG0158.AVI
    Format : AVI
    Format/Info : Audio Video Interleave
    File size : 17.4 MiB
    Duration : 14 s 948 ms
    Overall bit rate : 9 791 kb/s
    Mastered date : 2009/09/21/ 17:08
    Writing application : CASIO EX-Z400
    Writing library : QVMI

    • 荒川 智 より:

      追伸です。
      139行目の書式の整形については、BATファイルの方で解決しました。
      次は、30行目の撮影日の取得にトライしたいと思います。(これもBATのほうで。)

  2. beyond より:

    荒川さん、はじめまして
    当サイトを管理してますbeyondです。

    ご連絡が遅れてしまいましたが申告いただいた症状を拝見させていただきました。
    使ったことのないSONY以外の機器のため解決できるか自信がないのですが
    またBATファイルでということですでに解決に向けて進んでいるかもしれませんが、
    気になったところを以下に3点まとめます。

    1) MediaInfoコマンドがちゃんと応答を返すか確認

    スクリプトからは、次のような使い方でMediaInfo.exeを実行していますので
    コマンドプロンプトで、このコマンドをそのまま実行することで期待する結果が出せているのかを確認できます。
    その際、項目名としてMastered_Dateを指定します。

    MediaInfo.exe --Inform=General;%Mastered_Date% 解析対象のAVIファイル

    この結果に日時を示す文字列が返ってくるかどうかがポイントです。

    参考にならないかもしれませんが、SONYのビデオで保存したAVIファイルの場合は次のような出力になります。

    MediaInfo.exe --Inform=General;%Recorded_Date% 解析対象のAVIファイル
    2004-03-14 15:15:12.000

    2) スクリプトの修正箇所

    間違っている可能性があるのですが、Mastered_Dateに対応させるための変更箇所を以下に並べます。

    ①30行目のMediaInfoコマンドの引数 ※ご連絡いただいた箇所です


    【変更前】
    #MediaInfoコマンド実行時に指定する引数
    [String] $mediaInfoArg = " --Inform=General;%Recorded_Date%";
    【変更後】
    #MediaInfoコマンド実行時に指定する引数
    [String] $mediaInfoArg = " --Inform=General;%Mastered_Date%";

    ②146行目付近の日時の書式変換処理 ※ファイル名に使えない文字を置き換える処理です


    【変更前】
    If($recordedTime -eq ""){
    "Recorded_Dateが取得できませんでした。対象ファイル:{0}" -f $oldFilePath;
    }Else{
    #末尾「.000」を削除
    $recordedTime = $recordedTime -replace "\.[0-9]+ *$","";

    #変更後のファイル名(書式:「yyyy-MM-dd_HH-mm-ss.avi」)
    [String] $newFileNameWoExt = $recordedTime -replace " ","_" -replace ":","-";

    【変更後】
    If($recordedTime -eq ""){
    "Recorded_Dateが取得できませんでした。対象ファイル:{0}" -f $oldFilePath;
    }Else{
    #変更前の日時「yyyy/MM/dd/ HH:mm」)
    #変更後の日時「yyyy-MM-dd_HH-mm」)
    [String] $newFileNameWoExt = $recordedTime -replace "/ ","_" -replace "/","-" -replace ":","-";

    ※最初に”/ “の2文字を”_”に変換しているところがポイントです。

    3) もしかするとファイルの重複が起きるかもしれません

    これはMediaInfoとは関係がないのですが
    Mastered_Dateに秒の情報がないとすると、1分以内に2枚以上撮影していた場合、ファイル名の変換をすることで重複するファイル名となってしまい、エラーメッセージを出すと思います。
    今のスクリプトでは同一日時の撮影には対応してないのですが、簡単に済ますとしたらカウントアップする変数を使って無理やりファイル名をユニークにするという案があります。

    以上です。よろしくお願いします。

  3. 荒川 智 より:

    はじめまして。丁寧にありがとうございます。

    早速コマンドプロンプトで確認しましたところ、文字列が取得できませんでした。
    そもそもMediainfoが認識されていないということでしょうか?
    CLI版で一瞬開いて消えるという状況は確認できているのですが。

    MediaInfo.exe –Inform=General;%Mastered_Date%D:\EXCILM\CIMG0237.AVI
    ‘MediaInfo.exe’ は、内部コマンドまたは外部コマンド、
    操作可能なプログラムまたはバッチ ファイルとして認識されていません。

    プログラミングに疎いのですが、最初にcdでディレクトリの指定とか必要なのでしょうか?

    • 荒川 智 より:

      何度もすいません。
      コマンドプロンプトについて少し調べ、
      MediaInfo.exeの格納場所を、ユーザーフォルダに変更したところ、実行できるようになりました。
      ところがInform-Parameters で一覧は取得できるのですが、Mastered Dateが取得できません。
      そこで–Help等で調べていくと、現在のMediaInfoでは、Optionに InformがなくOutputになっているらしいことや、%Mastered Date%の後ろにスペースが必要なことがわかりました。
      その結果、なんとか以下の命令で、日付を取得できることができました。

      MediaInfo.exe –Output=General;%Mastered_Date% D:\EXCILM\CIMG0237.AVI
      2009/09/26/ 13:55

      時間がなく、少しづつですが、進捗していることをお伝えしておきます。

      • beyond より:

        荒川さん
        先に進んでいるようで安心しました!

        私が昨日試したのは、MediaInfo CLI v17.12ですが、–Informオプションは動作しておりましたが、たしかに–helpオプションではリストされてません。
        試しに私も「–Output=General;%Recorded_Date%」でSONYビデオで撮影したAVIファイルを解析したところ、–Inform同様の結果になりました。

        さらにソースファイルも恐る恐るのぞいてみたところ、斜め読みですが–Informと–Outputは同じ動作になるような気がしました。(CommandLine_Parser.cppというファイルを見ました…)

        何はともあれ、先に進んで私もとてもうれしいです。応援しております。(^^)

  4. beyond より:

    荒川さん
    文字列が取得できない件ですが、
    メッセージ「‘MediaInfo.exe’ は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
    はcd等でディレクトリを合わせなかった時の症状にそっくりです。
    ご推察の通りで「コマンドをそのまま実行」という返信のシンプルすぎな表現だったところが反省点ですね。

    簡単にお伝えするいい方法がないかと考えてみたのですが↓こういうのはいかがでしょう?

    1) コマンドプロンプトを開く
    2) コマンドプロンプトとは別に、エクスプローラーでMediaInfo.exeファイルのあるフォルダを開き、MediaInfo.exeファイルをコマンドプロンプトの黒いエリアへドラッグ&ドロップする。
    3) するとコマンドプロンプトの画面にドライブ番号から始まる絶対パスでMediaInfo.exeのコマンド名が表示される!
    4) 続けてキーボードでMediaInfoコマンドのための引数を付け足すようにタイプしてあげて
    「<MediaInfo.exeのパス表記> –Inform=General;%Mastered_Date% 」というコマンド文にする。 ★最後にスペースを1文字入れるところを忘れずに。
    5) さらに、エクスプローラーで解析対象のAVIファイルがあるフォルダを開き、MediaInfo.exeと同じようにAVIファイルをコマンドプロンプトの黒いエリアへドラッグ&ドロップする。
    6) するとコマンド文の末尾にAVIファイルの絶対パスで表示される!
    7) 最後にENTERキーを押してコマンド文を実行する。

    • 荒川 智 より:

      入れ違いになってしまいましたが、返信ありがとうございます。
      なるほど。ドラッグ&ドロップができるんですね。知りませんでした。
      コピー&ペーストで苦労してました。これでもっと早く進めていけそうです。

      • 荒川 智 より:

        おかげさまで無事リネーム完了しました。
        秒の情報がありませんでしたが、幸い同じ分のものがなかったので、末尾に「:00」をつけることで処理しました。
        次々にファイルがリネームされていくのを見たときは感動しました。
        本当にアドバイスありがとうございました。

  5. beyond より:

    荒川さん
    おめでとうございます!
    SONYのビデオしか試したことがなかったのですが、CASIOのビデオでもうまく動作できてよかったです。
    こんなにうまくいくなんてさすがMediaInfo。
    秒のところの重複があると面倒だったのですが、写真と違いビデオはずっと撮影するわけだし、冷静に考えると普通のビデオであれば秒はなくても大丈夫ですね。
    また機会があればよろしくお願いします。

  6. 荒川 より:

    先日はアドバイスありがとうございました。

    次は昔MacでPCに取り込んでいたmovファイルと格闘しています。
    MP4に変換しつつ、日付を揃えたいというものです。

    現在考えている手順は以下のとおりです。
    1)該当ファイルについて、beyondさんのプログラムでファイル名と作成日、更新日を揃える。

    2)YYYY-MM-DD_ HH-MM-SS.movというファイルをHANDBREAK等の変換ソフトでmp4形式に変換する。この時点で作成日、更新日が、変換時点のものになる。

    3)ファイル名の日付情報を取得し、作成日および更新日を、同じ時刻に変更する(=元に戻す)

    という考えのもと、手順3のプログラムを手順1のスクリプトを利用して作成すれば、なんとかできるのではないか?と構想しています。
    MediaInfoに関する命令を、ファイル名取得の命令に置き換えることで達成できますでしょうか?

    • beyond より:

      荒川さん
      HANDBREAKというツールはこちらのサイトで公開されているツールであってますでしょうか?
      https://handbrake.fr/

      HandBrake is a tool for converting video from nearly any format to a selection of modern, widely supported codecs.

      多分これだと思いドキュメントを見てみたところこちらのページにコマンドラインの説明がありました。
      https://handbrake.fr/docs/en/1.0.0/cli/cli-guide.html
      > -o, –output Set destination file name

      mov形式のファイルが手元になくてすぐ試せてないのですが、この-oオプションに任意の出力ファイル名を指定できるようです。
      これをWindowsのBatファイルを活用するとできる気がしました。

      例えばこんなイメージです
      —–
      @echo off
      for %%i in (*.mov) do (
      echo handbrake -i %%~fi -o %%~dpni.mp4
      )

      —–

      < 実行結果>
      handbrake -i c:\test.mov -o c:\test.mp4

      もしかすると詳しく調べていくと、handbrake自身に同様のことができる機能があるのかもしれません。

  7. 荒川 より:

    すいません。書き方が良くなかったみたいです。
    手順として1→2→3と進め、それぞれで異なるツールを使おうかと。そうすると、手順3では対象ファイルのファイル名から、BAT又はpowershllだけで、作成日や更新日を元に戻せることが完結できるかなと考えた次第です。

    • beyond より:

      荒川さん

      整理させてください。
      ↓であっておりますでしょうか。

      – 手順1でmov形式のファイルからMediaInfoを使って日時情報を取り出せた
      – 手順2で変換した時の日時も残したい
      – また、手順2で得られるmp4ファイルを残しつつ、手順1の日時を使ってコピーしたmp4も作りたい

      手順1が出来ている前提ですが、もう少し見てみます。

      • beyond より:

        荒川さん
        movファイルは持ってないため手元にあるSONY製ハンディカムから取り込んだaviファイルを使ってhandbrakeを実行してみました。

        handbrake -i c:\sample.avi -o c:\test.mp4

        これで得られたtest.mp4ファイルですが、残念ながらMediaInfoで確認すると、撮影日時は引き継がれていませんでした。
        そのため、handbrakeで得られたmp4ファイルに何とかしてaviファイルの撮影日時を使ってファイル名を与えないといけないようです。

        変換日時は「今」の時刻でよいはずなので、例えば手順2の変換日時を最後の手順に変えると比較的容易に実現するのですが、こんな感じでどうでしょうかね


        @echo off
        for %%i in (*.mov) do (
        set movfile=%%~fi
        set mp4file=%%~dpni.mp4
        echo handbrake -i %movfile% -o %mp4file%

        set time2=%time: =0%
        set convfile=%date:~0,4%-%date:~5,2%-%date:~8,2%_%time2:~0,2%-%time2:~3,2%-%time2:~6,2%.mp4
        echo copy %mp4file% %convfile%
        )

        <実行結果>

        C:>test.bat
        handbrake -i C:\2001-03-09_00-27-46.mov -o C:\2001-03-09_00-27-46.mp4
        copy C:\2001-03-09_00-27-46.mp4 2018-03-09_00-27-46.mp4

      • 荒川 より:

        調べていたいたようで大変恐縮です。

        手順1で、MediaInfoから取得した日時情報を使ってリネームし、ファイル作成日・更新日も変更したmovファイルにしておきます。

        手順2は、手順1でリネームしたmovを、HandbrakeでMP4に変換します。この時にご確認いただいた通り、撮影日情報が失われてします。したがって事前に手順1でリネームしたファイル名称が撮影日の唯一の情報になります。

        手順3で、撮影日がファイル名となっているMP4ファイルについて、変換日となっているファイル作成日・更新日を、撮影日にするというものです。

        最後に残したいのは、ファイルの名称、作成日・更新日が、変換前の撮影日情報になったMP4
        ファイルで、変換日は残さなくても良いと思っています。

        変換しなくてはいけないが、そこで撮影日情報が引き継ぎされず失われてしまうので、ファイル名称に手掛かりを残しておけばと、考えた次第です。

  8. 荒川 より:

    beyondさん

    MP4変換後のファイルの作成日。更新日を撮影日に変更する件ですが、

    beyondさんのプログラムから、
    MediaInfo関連と思われる行を削除し、
    ファイル名を取得する部分がありましたので、そこからRecorded_timeを設定し、
    ファイルの作成日、更新日を、ファイル名の日付に変更することに成功しました。

    全く基礎も身についておらず、見よう見まねでなんとかここまできました。
    以下がスクリプトですが、参考までに無駄な部分とかありますでしょうか?
    後学のためにアドバイスいただければと思います。

    ———————–
    #Setmp4Date.ps1
    #[Version]
    # 1.0
    #[Released]
    # 2018/03/09
    #[Abstract]
    # YYYY_MM_DD HH-MM-SSのファイル名を使って、
    # ファイルプロパティの作成日と更新日を変更します。
    #[Usage]
    # Setmp4Date.ps1
    #[Requirement]
    # Windows 7以降 (PowerShell 2.0以降)

    #StrictModeをLatestに設定
    Set-StrictMode -version Latest

    #————————————————————————-
    #設定

    #★操作対象のファイルが格納されているディレクトリ(デフォルト)
    [String] $targetDir = “D:\”;

    #★操作対象のファイル拡張子
    [String] $targetExt = “.mp4”;

    #————————————————————————-
    #メイン処理

    #ApartmentStateにてSTAモードのチェック(.NET Frameworkオブジェクトを利用する前提)
    [Boolean] $reRun = $false;
    Switch($host.Runspace.ApartmentState){
    ‘STA’ {
    #何もしない
    }
    ‘MTA’ {
    #MTAモードの場合は、STAモードを指定して再実行
    $reRun = $true;
    }
    default {
    #STAモードでもMTAモードでもない場合はUnknown(デフォルト)
    If($PSVersionTable.PSVersion.Major -eq “2”){
    #PowerShell2.0の場合、デフォルトがMTAモードなのでSTAモードを指定して再実行
    $reRun = $true;
    }
    }
    }

    #.NET Frameworkのダイアログ関連オブジェクトの取り込み
    Add-Type -AssemblyName System.Windows.Forms;

    #ディレクトリ選択ダイアログのオブジェクト取得
    [System.Windows.Forms.FolderBrowserDialog] $dialog = New-Object System.Windows.Forms.FolderBrowserDialog;
    #ダイアログへ説明を追加
    $dialog.Description = “変換対象ファイル({0})が格納されたディレクトリを選択” -f $targetExt;
    #新規ディレクトリ作成ボタンの表示設定(false:表示しない)
    $dialog.ShowNewFolderButton = $false;
    #初期選択ディレクトリを設定
    $dialog.SelectedPath = $targetDir;

    #ダイアログ選択結果からOKボタンをおした時のみ実行
    If($dialog.ShowDialog() -eq “OK”){
    #ダイアログで選択したディレクトリを操作対象ディレクトリに再設定
    $targetDir = $dialog.SelectedPath;
    #操作対象ディレクトリ以下のサブディレクトリを再帰的に対象ファイルを検索
    Get-ChildItem($targetDir) -Recurse | ForEach-Object {
    #拡張子名取得
    [String] $extName = $_.Extension;
    If($extName -eq $targetExt){
    #変更前のファイル名(フルパス)
    [String] $oldFilePath = $_.FullName;
    #ディレクトリ名取得
    [String] $dirName = $_.DirectoryName;
    #変更前のファイル名
    [String] $oldFileNameWoExt = [System.IO.Path]::GetFileNameWithoutExtension($_);

    #変更前のファイル名をRecorded_Dateに取得(書式:「YYYY_MM_DD HH-MM-SS」)
    [String] $recordedTime = $oldFileNameWoExt;

    #ファイルの作成日と更新日を設定(書式:「yyyy/MM/dd HH:mm:ss」)
    [String] $propTime = $recordedTime -replace “_”,”/” -replace “-“,”:”;
    Set-ItemProperty $oldFilePath -Name CreationTime -Value $propTime;
    Set-ItemProperty $oldFilePath -Name LastWriteTime -Value $propTime;
    }
    }
    }

    • beyond より:

      荒川さん
      変換日時を残すことは不要であること、ファイルのプロパティにあるファイル作成日・更新日へ日時情報として残したいこと
      この2点がずれてしまってたんですね。
      そして返信が遅れましたが既に修正コードを作成いただいており素早いですね。
      拝見させていただいたところ、私からは特にコメントすべきことはなさそうです。
      プロパティの設定に関しては重複によるエラーは起きないはずで、チェック処理も不要だしこのままで問題ないと思います。

      # もともとのツールを読み返してみるとファイル名の変換とファイルのプロパティの変換を同時にやるという仕組みですが、
      # 荒川さんのようにどちらか片方でよい場合もあるし、時間を見てもう少し改善したほうがよい気がしました。

      • 荒川 より:

        beyondさん

        確認ありがとうございます!

        今回、たまたま拡張子が違うものでしたので、
        対象拡張子をダイアログで選択もしくは入力できるようにできたらいいなと感じました。

  9. 荒川 より:

    何度もすいません。

    beyondさんのプログラムで,過去の様々な動画ファイルを同じように整理しています。

    次に検討しているのが、movファイルを対象に、
    ファイルのプロパティの撮影日時のデータを用いて、
    ファイル名をYYYY_mm_SS HH-MM-SSに変更しようと思っています。
    MediaInfoでは撮影日時が見つからす、プロパティの作成日時がそれに該当すると思われるからです、

    Item Property の CreationTime を取得すれば良いと思うのですが、
    どのような命令にするのがよいでしょうか?

    • 荒川 より:

      beyondさん

      こちらのページで、MEDIAINFO以外のツールも見つかったので、movのファイル名変更できました。
      ご参考まで。

      https://cosmic-voyager.com/iphonemov.html

      • beyond より:

        またまた返信が遅れてしまいましたが、便利なツールがあってよかったです。
        PowerShellを使ってもうまくいくと思いますし、ご紹介いただいたツールでも当然同じようなことができるはずです。
        結果が同じなら当然何もしないでやりたいことを達成することができるというのが楽なんですよね。

Message

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

Time limit is exhausted. Please reload CAPTCHA.

  関連記事

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

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

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

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

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

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

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

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

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

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

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

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

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