Фон
В 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?