• 締切済み

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

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

みんなの回答

  • kteds
  • ベストアンサー率42% (1878/4429)
回答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% (750/1592)
回答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

  • バッチファイルでテキストファイルの文字列を取得したい

    すみません、どなたか教えて下さい。 バッチファイル(test.bat)内で、他のテキストファイル(ok.txt)の文字列を取得したいです。 ok.txtは 20070614 TEST となってます。 この2つの文字列をそれぞれで取得する方法を教えて下さい。 よろしくお願い致します。

  • テキストファイルの内容を文字列として格納する方法を教えてください。

    windows xp、visual C++でプログラムを作成している初心者なんですが、コンマ(,)で区切られたテキストファイルの一部分を文字列として取得する方法が知りたいです。たとえば"sample.text"というファイル名で、 "BAAE0001","0","8","1000100010001000" "BAAE0002","0","8","1000100010001010"  ・  ・  ・ と続いていくテキストなんですが、一行目のBAAE0001をa1に入れ、0をb1に入れ、8をc1に入れ、1000100010001000をd1に入れて、二行目以降もa1、b1…の数字の部分を1ずつ増やして同じように格納していくというふうにしたいです。わかる方、いい方法がある方がいましたらどうか教えてください。

  • WSHで「ファイルUID」を取得するには?

    エクスプローラの「列の設定」ダイアログに、ファイルUID という項目があります。ファイルを同一ドライブ内で移動してもこの値は変化しません。属性を変更しても変化せず、重複もないみたいなのでファイルのUnique ID なのだろうと思います。これをWSHから取得するにはどうすればいいのでしょうか? 目下、ファイル名を一旦テキストファイルに取り込んで編集してから戻すというやり方で、複数ファイル名を一括してリネームするスクリプトを書いています。ファイル名に依らずにファイルを識別するために、現在はプロパティの概要項目に、識別文字列を入力しています。この方法はNTFSでしか使えず、エクスプローラの動作も重くなります。 このファイル識別に「ファイルUID」が使えたら、と思うのですが。

  • Webアプリで表示中のテキストを取得する

    全くほかの稼働中のWebアプリ上で表示されている英数字を、マウスを載せるだけで取得できるスクリプトのようなものを探しています。イメージとしてはLingoes(添付画像)やキング辞書のような機能です。目的は意味を調べるのではなく、取得した英数字の文字列をほかのWebアプリに渡すことです。渡された文字列をコンテキストメニュー経由で渡すことも考えていますが、そもそもほかのアプリで表示された文字列をコピーではなくマウスオンないし、クリックで取得したいです。 当方はエンジニアではないため、参考になるサイトや例文が載っているURLなどを教えていただければ幸いです。

  • 【C#】WebBrowser上で表示されているテキストの部分取得

    こんにちは,いつもお世話になっています. C#を用いて,ローカルに保存したhtmlファイルをwebBrowserで表示し, そこに表示されたテキストの一部をマウスで選択してボタンアクションで取得するような機能を実現したいと考えています. 現在WebBrowser.Document.Body.InnerText.Substring(int, int)を使用して選択された文字列を取得しようと考えているのですが, ブラウザで表示されているテキストにはtextBoxでいうところのselectionStartsやselectionLengthのようなプロパティがありません. どのようにしたら可能になるでしょうか. もちろん目的の機能が実現できるならば上記の方法にこだわるつもりはありません. 他に何か方法がありそうでしたらそちらも教えていただけないでしょうか. プログラミング初心者ですので質問の仕方に至らない部分があるとは思いますが, どうぞよろしくお願いいたします.

  • ファイル操作について、テキストファイルの書き換え

    よろしくお願いします。 データファイルAからデータを取得して、テキストファイルBの内容の一部を取得したデータで書き換えるという操作を行うプログラムを作りたいです。 具体的には、 データファイルA[A.txt]の中身 111 222 333 444 テキストファイルB[B.txt] 文字列1="123" 文字列2="234" 文字列3="345" 文字列4="456" というような二つのファイルを読み込み、B.txtの""で囲まれた部分を、A.txtで取得したデータで置き換えるような操作を行いたいのですが・・。 使用する言語としてはスクリプト言語であるperl、もしくはプログラム作成経験があるCを使用しようと思っています。(perlは未経験で入門書を読んでいるレベル)

    • ベストアンサー
    • Perl
  • テキストボックスの名前に変数をつける

    文字列から文字を抜き取って、 指定したテキストボックスに ループで挿入する処理を作成しています。 イメージとしては下記のような感じです ループ  ・取得した文字←文字列[カウント]  ・「テキストボックス名 + カウント.Text」← 取得した文字   ・カウント = カウント + 1 ループ 真中の行の「テキストボックス名 + カウント.Text」を 定義するにはどうすれば良いでしょうか?

  • テキストのstylecolorの取得方法を教えて下さい。.

    <input type="file">で、画像を消去した時、ファイル名のテキストの 文字を白色に変更していますが、そのファイル名が、消去されたものか、 どうか判定するために、stylecolorの取得方法を教えて頂きたいのですが、 どなたか、ご存知の方、いらっしゃいましたら、ご教授願います。 よろしくお願いいたします。

    • 締切済み
    • PHP
  • スタート→エクスプローラで左ペインに表示されるものを制御したい

    画像でも文書でも、開く場合は、スタート→エクスプローラからたどって開いています。 ところが、スタート→エクスポローラで開くと、普段はほとんど用の無いシステムディスクの中のフォルダがずらずらーと開いてしまい、肝心の私の文書等を収納している外付のHDDが、左のペインの一番下に(添付図)位置してしまい、とても使いづらいのです。 せめて(添付図)のように開けるようにしたいのですが、何か方法はありませんか? 「ファイル名を指定して実行」でエクスプローラの起動コマンドを使う方法は、好みません。

  • VBのリッチテキストについて

    OS98,VB6.0でテキストエディタを作っています。 文章中で指定した文字列を部分的に色をつける機能をつけたいと考え、 いろいろと調べてわかったことは、リッチテキストを使えばいいということでした。しかし、どのようにすれば、部分的に色を変えることができるのかわかりません。 あらかじめワードパッドで部分的に色を変えて保存したrtfファイルではリッチテキストに読み込んだとき、ちゃんと部分的に色が変わった状態で表示させることができました。 また文字の書式を取得しなければならないのかと思って以下のアドレスのプログラムを参考にさせてもらっていたのですが、実行ボタンを押しても何も起こらずいきずまってしまいました。 http://vbvbvb.com/jp/gtips/0451/gSendMessageEmGetcharformat.html どんな情報でもよいので、よろしくお願いします。

このQ&Aのポイント
  • デスクトップPCのインターネット速度が遅い原因として、回線の問題やソフトウェアの不具合、ウイルスソフトの更新が挙げられます。
  • まず、回線の問題を確認するために、他の端末でのインターネット速度を測定してみてください。もし他の端末では正常な速度が出ている場合、デスクトップPC側の問題が考えられます。
  • デスクトップPC側の問題を解決するためには、ウイルスソフトの更新やPCの初期化などの対策が有効です。ただし、初期化する際には重要なデータのバックアップを忘れずに行ってください。
回答を見る