7

Можно ли убрать "системный" атрибут файла, не используя командную строку? В основном, я хочу сделать это:

attrib "folder" -s
attrib "file" -s

без использования командной строки или командного файла. Меню свойств проводника Windows позволяет сделать это для скрытых и доступных только для чтения атрибутов. Есть ли способ сделать это с помощью системного атрибута?

4 ответа4

8

Если вы хотите что-то сделать из контекстного меню, вот один способ, который может сэкономить вам время, если вы пытаетесь сделать это много:

Создайте пакетный файл RemoveSysAttrib.bat

@echo off
attrib -s "%1%"

Затем следуйте этому руководству для добавления пользовательского приложения в контекстное меню: Как добавить любое приложение в контекстное меню рабочего стола Windows

Затем вы можете использовать пункт меню "Удалить системный атрибут", который делает это, используя ваш командный файл. Таким образом, вы также можете создать скрипт для добавления атрибута обратно. Может быть, немного неудобно заставить его работать для нескольких вариантов выбора файлов, но, если повезет, он запустит ваш файл один раз для каждого выбранного элемента. Вы хотите проверить это с:

@echo off
echo %1%
pause

Если он предоставляет имена файлов в виде атрибутов 1, 2, 3 и т.д., Вам придется циклически перебирать все параметры. Если указано более одного параметра, вы можете вызвать ваш скрипт рекурсивно следующим образом:

if NOT "%2%"=="" (
    for %%A in (%*) do (
        RemoveSysAttrib.bat "%%A"
    )
) else (
    attrib -s "%1%"
)

Надеюсь, что поможет =)


В ответ на комментарии Synetech:

Когда вы используете attrib , он не изменит настройки H или S , если задан другой (он скажет, что файл XXXX не сбрасывается). Вам нужно будет удалить (или установить) оба, а затем заменить тот, который вы не хотите изменять, обратно на прежний.

Я расширил скрипт, чтобы проверить атрибут 'H', о котором сообщает команда attrib Windows 7. Чтобы сделать его более общим, вам нужно будет проверить больше позиций подстроки, так как я догадываюсь, что в других версиях это отличается. У меня нет других версий Windows под рукой, поэтому я не могу проверить.

@echo off
setlocal enabledelayedexpansion

:: Check if file is hidden - works on Windows 7
set hidden=0
for /f "delims=" %%A in ('attrib "%1%"') do (
    set attr=%%A
    if "!attr:~4,1!"=="H" set hidden=1
)

:: If file is hidden, remove both attributes, then hide again.
if %hidden%==1 (
    attrib -S -H "%1%"
    attrib +H "%1%"
) else (
    attrib -S "%1%"
)

endlocal
1

Установите это:http://www.nirsoft.net/utils/bulkfilechanger.zip

или посетите http://www.nirsoft.net/utils/bulk_file_changer.html, чтобы загрузить файл версии по вашему выбору.

1

Я нашел еще две программы:

Атрибут Changer - http://attribute-changer.software.informer.com/

File Attribute Stripper 1.0 - http://www.softpedia.com/get/System/File-Management/File-Attribute-Stripper.shtml

Некоторое время назад я использовал "RemoveR PRO" из - http://www.bigwig.net/softwaredesign/free.htm (сейчас неработающая ссылка), может быть, вы можете найти его в некоторых архивах

0

Вы можете использовать расширение оболочки AttrMenu, которое создает запись контекстного меню для файлов и папок:

Снимок экрана контекстного меню AttrMenu

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .