• 締切済み

エクスプローラーの表示内容をテキストで取得するには

Windowsのエクスプローラーに 添付図のように 動画ファイルのファイル名と長さ(再生時間)が表示されていますが 添付図の赤枠の部分の文字列(ファイル名と再生時間)を テキストとして取得したいのすが、 簡単に取得する方法はありますでしょうか。 よろしくお願いします。(Windows10)

みんなの回答

  • kteds
  • ベストアンサー率42% (1883/4441)
回答No.2

「フォルダにあるファイル全件について、一覧形式でテキストファイルとして取得したい」 ということですね。 下記のスクリプトを拡張子 ps1 として作成して、 PowerShellで実行すればいいです。 "フォルダ名"と"ファイル名"は自分の環境に合わせて指定してください。 結果は指定した"ファイル名"のファイルに「ファイル名」と「長さ」の一覧リストを取得できます。 実際の結果は添付画像参照。 -------------------- $targetDirectory = "フォルダ名" #フォルダ名をフルPATHで指定 $targetFiles = (Get-ChildItem $targetDirectory).fullname foreach($targetFile in $targetFiles) { $folderPath = Split-Path $targetFile $fileName = Split-Path $targetFile -Leaf $shell = New-Object -ComObject Shell.Application $shellFolder = $shell.namespace($folderPath) $shellFile = $shellFolder.parseName($fileName) #ファイル詳細プロパティ 27番目の値(長さ)を取得 $propertyValue = $shellFolder.getDetailsOf($shellFile, 27) $outtxt = $fileName + " " + $propertyValue Write-Host $outtxt add-content "ファイル名" -value $outtxt #ファイル名をフルPATHで指定 } --------------------

ID_20150222
質問者

お礼

回答ありがとうございました。

  • NuboChan
  • ベストアンサー率47% (790/1658)
回答No.1

>テキストとして取得したいのすが、 >簡単に取得する方法はありますでしょうか。 求められているか不明ですが ExcelのVBAで動画のプロパティを調べて再生時間を取得できます。 後は、再生時間がセルに表示されるのでテキストファイルにコピペする。 以下基本のコードを記載します。 Sub Test01() Dim Shel As Object, Foldr As Object Dim Target As String, cnt As Long Const Path As String = "D:\test\" ' ← 実際のフォルダパスを指定 Set Shel = CreateObject("Shell.Application") Set Foldr = Shel.Namespace(Path)  Target = Dir(Path & "*.mp4") ' ← 実際の動画の拡張子を指定 Cells(2, 1) = "[ファイル名]" Cells(2, 2) = "[再生時間]" cnt = 1 Do While Target <> "" cnt = cnt + 1 Cells(cnt, 1) = Foldr.GetDetailsOf(Foldr.ParseName(Target), 0) ' ファイル名 Cells(cnt, 2) = Foldr.GetDetailsOf(Foldr.ParseName(Target), 27) '長さ=再生時間 Target = Dir() Loop Set Foldr = Nothing: Set Shel = Nothing ActiveSheet.Cells.Columns.AutoFit Application.ScreenUpdating = True End Sub

ID_20150222
質問者

お礼

回答ありがとうございました。

関連するQ&A

専門家に質問してみよう