Como remover o atributo “System File” de um arquivo sem prompt de comando?

7

É possível remover o atributo "system" do arquivo sem usar o prompt de comando? Basicamente, quero fazer isso:

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

sem usar o prompt de comando ou um arquivo em lotes. O menu de propriedades do Windows explorer permite que você faça isso para os atributos ocultos e somente leitura; existe uma maneira de fazer isso com o atributo do sistema?

    
por Oztaco 19.04.2012 / 04:44

4 respostas

8

Se você quer algo que você pode fazer no menu de contexto, aqui está uma maneira que pode poupar algum tempo se você estiver tentando fazer isso bastante:

Crie um arquivo de lote RemoveSysAttrib.bat

@echo off
attrib -s "%1%"

Em seguida, siga este guia para adicionar um aplicativo personalizado ao menu de contexto: Como adicionar qualquer aplicativo ao menu do Windows Desktop com o botão direito do mouse

Você poderia então ter um item de menu chamado "Remover atributo do sistema", que faz exatamente isso, usando o arquivo de lote. Dessa forma, você também pode criar um script para adicionar o atributo de volta. Pode ser um pouco complicado fazer com que funcione para várias seleções de arquivos, mas com um pouco de sorte, ele lançará seu arquivo uma vez para cada item selecionado. Você vai querer testar isso com:

@echo off
echo %1%
pause

Se ele fornecer os nomes dos arquivos como atributo 1, 2, 3, etc, você terá que percorrer todos os parâmetros. Se mais de um parâmetro for fornecido, você poderia invocar seu script recursivamente assim:

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

Espero que ajude =)

Em resposta aos comentários da Synetech:

When you use attrib, it won’t change the H or S settings if the other is set (it will say not resetting XXXX file). You would need to strip (or set) both, then change the one that you did not want to modify back to what it was before.

Eu estendi o script para verificar o atributo 'H' relatado pelo comando attrib do Windows 7. Para torná-lo mais genérico, você precisaria verificar mais posições de substring, pois tenho um palpite de que é diferente em outras versões. Não tenho outras versões do Windows disponíveis no momento, por isso não posso verificar.

@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
    
por 19.04.2012 / 06:29
1

Instale isto: link

ou visite link para baixar o arquivo de versão de sua escolha.

    
por 19.08.2013 / 16:10
1

Encontrei mais dois programas:

Trocador de atributos - link

File Attribute Stripper 1.0 - link

há algum tempo eu estava usando o "RemoveR PRO" de - link (link morto agora), talvez você pode encontrá-lo em alguns arquivos

    
por 07.11.2013 / 14:16
0

Você pode usar a extensão de shell AttrMenu que cria uma entrada de menu de contexto para arquivos e pastas :

    
por 26.08.2013 / 18:11