【WSH】ファイルUIDの取得方法について

このQ&Aのポイント
  • エクスプローラの「列の設定」ダイアログに、ファイルUIDという項目があります。
  • ファイルUIDは、ファイルを同一ドライブ内で移動しても変化せず、属性を変更しても変化しません。
  • 現在はプロパティの概要項目に識別文字列を入力していますが、ファイル識別に「ファイルUID」を使用することで、NTFSでのみ使用可能な方法よりも軽量で使いやすくなります。
回答を見る
  • ベストアンサー

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

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

  • sgmt
  • お礼率100% (2/2)

質問者が選んだベストアンサー

  • ベストアンサー
  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.2

>ただ、このソフトはOSが使用しているファイル一意識別子を表示するもので、ソフト独自に一意識別子を作成しているわけではないと思うのですが。 ためしにインストールしてみました。 このファイルUID、FATに関して言えばディスク上のどこにファイルの先頭が置かれているかですね。 NTFSだと何でしょうね。pagefile.sysみたいに排他オープンされているようなファイルだとID取得できてないみたいですし。 WMIで取得できるかと思って確認してみましたがなさそうですね。 なんで、私はアプリが何らかの情報を元に独自に生成しているIDだと思います(^^;; ちなみにFATの場合、このIDのようなものはOSは管理していません。

sgmt
質問者

お礼

ありがとうございます。参考になります。 ちなみに件のソフトのサイトにソースコードもありました。WSHでお気楽に、を目論んでいた素人には敷居が高いですが。

その他の回答 (1)

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.1

>エクスプローラの「列の設定」ダイアログに、ファイルUID という項目があります。 OSはなんでしょう? Win2000には無いんですけど。 こんなソフト入れてませんか? リンク作成シェル拡張 for Windows 2000/2003/XP http://eside.homeip.net/free/symlink2k.html

sgmt
質問者

お礼

ごめんなさい。「昨日の自分は赤の他人状態」が進行していることを再認識しました。 ご指摘のソフトを入れていました。(OSはW2Kです。) ただ、このソフトはOSが使用しているファイル一意識別子を表示するもので、ソフト独自に一意識別子を作成しているわけではないと思うのですが。

関連するQ&A

  • WSH化方法

    WINDOWS2003にて、 下記の項目を知りたいときに コマンドプロンプトにてコマンドを打ち 情報を把握しているのですが数が多くなってきたので これをWSH?にてファイルに出力することは できないでしょうか。 1.グループ一覧 net localgroup 2.ユーザー一覧 net user 3.所属ユーザー net localgroup グループ名 WSH

  • 画像をプレビューしながらファイル名をリネーム

    スキャニングした画像に記載されている番号をファイル名に変えたいのですが、枚数が多いためXPのエクスプローラーからのリネームは時間がかかるので、もっと効率の上がるリネーム方法を探しています。 フリーソフトの「Namery」を試しましたが、画像のプレビュー画面が小さいので断念しました。 大きな画面で見れるものがあれば良いのですが…。 画像をプレビューしながらファイル名をリネームできるようなフリーソフトをご存知でしたら教えてください。

  • エクセルの文字列順に画像をリネームしたい

    csvデータにリネームしたい文字列と現在のファイル名があります。 A列にはリネームしたい文字列、B列には、現在のファイル名が順番に並んでいます。 これをどうにかしてリネームしたいのですが、何か良い方法はありませんでしょうか? A列リネームする文字列 | B列 現在のファイル名  -----------------------|------------------------ 1234 |010.jpg 2334 |030.jpg 4534 |abc.jpg 1258 |aaa.jpg 3134 |ddd.jpg

  • Batファイルでhostsを追加したい

    はじめまして。 BatファイルやWSHなどを使って、 hostsファイルにホスト名とアドレスを追加する方法が分かりません。 ダブルクリックで実行して簡単に項目を追加したいと考えていますので、 どなたか分かる方いらっしゃいましたら、教えてください。 宜しくお願いします。

  • SQLの2つのファイルを入れ子で読むには?

    SQLで以下のことが出来ないか困っています。 ファイルA(会社名が入っています)  項目名:A_Z  1件目:(株)あああ 2件目:いいい(有) 3件目:う(学)うう ファイルB(取り除きたい文字列が入っています)  項目名:B_Z  1件目:(株) 2件目:(有) 3件目:(社) 処理概要 1.ファイルAを読みます。  読み終えたら処理を終了します。 2.ファイルBを読みます。  読み終えたら1.から繰り返します。(次回は最初から読みます) 3.ファイルAの項目 A_Z を REPLACEを使用して B_Z の文字を 削除します。 4.2.の処理から繰り返します。 ストアドプロシージャで書こうと思いましたがうまく書けません。 出来ればMySQLとSQL Serverでの書き方ををご教授願います。

    • ベストアンサー
    • MySQL
  • リネームソフトを探しています

    次のような機能のあるリネームソフトを探しております。 1.フォルダ内のファイル名とファイル内の文字列を入れ替える。 (リネーム対象のファイルのファイル名の一部とファイル内の文字列はユニークに 特定出来る。) 例) ファイル名 aaaa bbbb cccc ファイル内の文字列 aaaa1234 bbbb5678 cccc9abc リネーム後のファイル名 aaa1234 bbb5678 ccc9abc この様なリネームが行えるソフトウェアはあるでしょうか? 環境はWindowsXPです

  • ファイルコピー→リネーム(日付時刻をファイル名)のバッチファイル

    「フォルダ1」のファイルA(テキストファイル)を「フォルダ2」へコピーする。 この時「フォルダ1」にはファイルAを残す。 「フォルダ2」へコピーしたファイル名を「日付時刻.txt」(200303041405.txt)とする。 以上のような操作をワンクリックで行いたくて、バッチファイルを考えたのですが、日付、時刻の入ったファイルネームにリネームがどうすればいいものか…いろいろ調べてみるとどうもむずかしそうなんですが、ご存知の方よろしくお願いします。  またWSHや他ソフトウェアで可能なものがあれば教えていただきたいです。 当方win98se環境での使用ですが、win2000pro環境での実行も可能です。 よろしくお願いします。

  • エクスプローラの連番付与で、元ファイル名を残して頭連番にすることは可能

    エクスプローラの連番付与で、元ファイル名を残して頭連番にすることは可能でしょうか? ウインドウズ標準のエクスプローラを使った連番付与は(複数選択の名前の変更)は元ファイル名が消えてしまいます。目的としてはエクスプローラの自由順列で写真順序を決定し、その順序で頭連番リネーム、なお且つ元ファイル名も残す、というものです。 OSはXPです。よろしくお願いします

  • インターネットエクスプローラーの保存ファイル

     インターネットエクスプローラーでのページを保存すると、そのhtmlファイル名と同じフォルダーができ、そこにリンクされている画像ファイル等がしまわれるようです。そのフォルダーの属性が「読み取り専用」になっています。プロパティーでそのチェックを外して「適用」とやっても、再度プロパティーで見ると「読み取り専用」に戻ってしまいます。「読み取り専用」の属性を外す(もちろんリンクが外れてしまうとかは自己責任にて)にはどうしたら良いのでしょうか。  ファイルの同期でも、これが原因しているのか、これらのファイルだけエラーになってしまいます。

  • ファイルをリネームしたんですが・・・

    ファイルをリネームしたんですが、いいフリーソフトはないでしょうか? ファイル名が ***(smxxx).mp4(もしくはflv) となっているのを、 [smxxx]***.mp4(もしくはflv) という風に書き直したいんです。 ***は任意の文字列、xxxは数字です。 いい方法が無いならFlexible Renamerでなんとかやっていこうとおもうので、Flexible Renamerでいい方法があるならそちらも教えて欲しいです。