Windowsコマンド(fsutil file queryFileID)


アニメ『バディ・コンプレックス』(2014)

ロボアニメです。ロボがそれほどカッコよくないのと、戦闘が多くて退屈だったのですが、タイムスリップ要素が面白そうなので、見続けようと思います。

FileIDって何でしょう。新規にファイルを作成して確認してみます。

C:\Users\takk2\tmp>dir
 ドライブ C のボリューム ラベルがありません。
 ボリューム シリアル番号は 6C92-6118 です

 C:\Users\takk2\tmp のディレクトリ

2019/02/23  13:27    <DIR>          .
2019/02/23  13:27    <DIR>          ..
               0 個のファイル                   0 バイト
               2 個のディレクトリ  196,735,270,912 バイトの空き領域

C:\Users\takk2\tmp>echo HELLO>test1.txt

C:\Users\takk2\tmp>echo HELLO>test2.txt

C:\Users\takk2\tmp>echo HELLO>test3.txt

C:\Users\takk2\tmp>

それぞれのファイルを、queryFileIDでFileIDを確認してみます。

C:\Users\takk2\tmp>fsutil file queryfileid test1.txt
ファイル ID は 0x0000000000000000001c00000001d9b4 です

C:\Users\takk2\tmp>fsutil file queryfileid test2.txt
ファイル ID は 0x0000000000000000000800000002b1d1 です

C:\Users\takk2\tmp>fsutil file queryfileid test3.txt
ファイル ID は 0x0000000000000000001f00000001d9a2 です

C:\Users\takk2\tmp>

FileIDは、連番ではないんですね。0が多いところを考えると、何か規則性も感じます。少なくとも同一PC内で重複することはないと思います。
ファイルをコピーして作成した場合のFileIDをみてみましょう。

PS C:\Users\takk2\tmp> copy test1.txt test4.txt
PS C:\Users\takk2\tmp> fsutil file queryfileid test4.txt
ファイル ID は 0x0000000000000000002600000002b1d7 です
PS C:\Users\takk2\tmp>

コピー元のtest1.txtとは、別のFileIDとなりました。

ところで5桁目の数字、1と2を交互に繰り返してるんじゃないでしょうか。
さらにコピーして作成してみます。

PS C:\Users\takk2\tmp> fsutil file queryfileid test5.txt
ファイル ID は 0x00000000000000000035000000021f19 です
PS C:\Users\takk2\tmp>

そうでもないようですね。
どこかに連番要素があるように思えるのですが、勘違いなんでしょうかねえ。
2進数で確認してみます。

PS C:\Users\takk2\tmp> gci | % {fsutil file queryFileId $_ | wsl cut -b40-45 | wsl perl -nE 'say unpack "B40",pack "N" ,hex' }
00000000000000011101100110110100
00000000000000101011000111010001
00000000000000011101100110100010
00000000000000101011000111010111
00000000000000100001111100011001
PS C:\Users\takk2\tmp>

連番で数字が一つずつ上がっていくような箇所は、見当たりません。
まあ規則性が分かったところで、今のところ使うことがないので、いつものごとく、気にしないことにします。

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA