* 代替データストリーム(ブロックの解除) [#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