背景
在 Windows 7 中,当从 Internet 下载文件时,某些浏览器(例如 IE 和 Firefox)会将其标记为来自 Internet。这在文件的属性对话框中很明显,该对话框将在属性窗口底部显示一条消息和一个“取消阻止”按钮。
此属性存储为 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.
这是输出到标准输出,所以最后添加 2>NUL 不会抑制它。在末尾添加 1>NUL 会抑制它,但它也会抑制命令执行任何有用的操作;也就是说,如果您运行echo. > file.exe:Zone.Identifier 1>NUL
,则Zone.Identifier
流仍然存在。
如何echo. > file.exe:Zone.Identifier
在 NTFS 上成功运行命令,并在 FAT32 上抑制其错误输出?