* 代替データストリーム(ブロックの解除) [#j82f79c2]


** dirコマンドで代替データストリームを持つファイルの確認 [#d4dad5ce]
*** dir(cmd.exe) [#va5b099b]
 C:\Users\foo\Downloads>dir /r
 
 2015/05/10  12:44    <DIR>          .
 2015/05/10  12:44    <DIR>          ..
 2015/05/10  12:43           101,162 dotjs-master.zip
                                 26 dotjs-master.zip:Zone.Identifier:$DATA
*** Get-Item(PowerShell) [#yc751b63]
 PS Downloads> Get-Item * -Stream *
 
 Stream                   Length
 ------                   ------
 :$DATA                   101162
 Zone.Identifier              26


上の例ではdotjs-master.zipが代替データストリームを持っているのが確認出来る。

** 代替データストリームの削除 [#l8af8dfd]
*** PowerShell [#k9f8b8eb]
 Remove-Item .\dotjs-master.zip -Stream Zone.Identifier

** 代替データストリームの書き込み [#jd759efd]

 CMD> echo "OK" > foo.txt:data1.txt
 CMD> notepad.exe foo.txt:data1.txt

- ファイル(ここではfoo.txt)があるとして、そのファイル名に:(コロン)でつなげて代替データストリーム名(ここではdata1.txt)を指定する。
- 上のようにコマンドプロンプトやメモ帳などで書き込みできる。

** 代替データストリームの全文検索 [#lbde57ed]

 PS> $files = dir -r -file *
 PS> $files | ? { gc -Path $_ -Stream "data1.txt" -ea silentlycontinue | select-string "OK" }

- ここでは代替データストリーム名data1.txtに"OK"という文字列が存在するファイルを検索している。

** 代替データストリームの周辺知識 [#m4f9fb29]
- ファイルでもディレクトリでも代替データストリームを持つことが出来る。
- 代替データストリームがあるのはNTFSだけ。FATへコピーすると代替データストリームは消える。
- ファイルエクスプローラーでコピーすると代替データストリームは保持される。それ以外のプログラムの場合、例えばRobocopy.exeは/dcopy:daオプションで保持される。

** 参考 [#oc3d6cd7]
http://www.atmarkit.co.jp/ait/articles/1407/11/news111.html

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS