バックグラウンド
Windows 7では、ファイルがインターネットからダウンロードされると、一部のブラウザー(IEやFirefoxなど)は、ファイルがインターネットからのものであるとフラグを立てます。これは、ファイルのプロパティダイアログで明らかです。このダイアログには、プロパティウィンドウの下部にメッセージと[ブロック解除]ボタンが表示されます。
このプロパティは、代替ストリームとしてNTFSファイルシステムに保存されます。具体的には、「Zone.Identifier」という名前のストリームです。したがって、ブロックされたファイルでコマンドmore < file.exe:Zone.Identifier
を実行すると、次の出力が得られます。
[ZoneTransfer]
ZoneId=3
このデータは、コマンドでクリアできますecho. > file.exe:Zone.Identifier
。これにより、上記のデータが空白行で上書きされ、Zone.Identifier
ストリームがファイルにまだ存在している間、プロパティダイアログで確認されたようにファイルが「ブロック」されなくなります。
問題
FAT32ファイルシステムには明らかにNTFS代替ストリームがありません。したがって、コマンドecho. > file.exe:Zone.Identifier
は次の出力を提供します。
The filename, directory name, or volume label syntax is incorrect.
これはstdoutに出力されるため、最後に2>NULを追加しても抑制されません。最後に1>NULを追加すると、それは抑制されますが、コマンドが有用なことを実行することも抑制されます。つまり、を実行するecho. > file.exe:Zone.Identifier 1>NUL
と、Zone.Identifier
ストリームは残ります。
echo. > file.exe:Zone.Identifier
NTFSでコマンドを正常に実行し、FAT32でのエラー出力を抑制するにはどうすればよいですか?