Como remover o atributo somente leitura recursivamente no Windows 7

59

Eu preciso remover os atributos somente leitura de todos os arquivos em um diretório recursivamente no Windows 7 usando a linha de comando. Você poderia por favor fornecer um exemplo sobre isso?

    
por Mert Nuhoglu 03.10.2013 / 17:49

4 respostas

76

Eu usaria o comando ATTRIB, por exemplo:

attrib -r c:\folder\*.* /s

attrib é o comando% -r is do sinalizador para remoção de atributos somente leitura% c:\folder\*.* é a pasta em que você está executando, além de curingas para todos os arquivos
/s is o sinalizador para fazer todos os sub-diretórios e arquivos

Aqui estão mais algumas documentações e exemplos para o comando attrib: link

    
por 03.10.2013 / 17:56
22

Primeiro, abra um prompt de comando. Em seguida, cd no diretório em que você deseja começar a aplicar as alterações de atributo. Por fim, insira o seguinte comando:

 attrib -R /S

Isso removerá o atributo somente leitura de todos os arquivos no diretório atual e, em seguida, recorrerá para fazer a mesma coisa em todos os subdiretórios.

por 03.10.2013 / 17:57
5

Observação: a maioria das outras respostas usa apenas -r , que pode não funcionar em arquivos com system ou hidden atributos definidos.

Portanto, aqui está uma solução para remover recursivamente o atributo somente leitura de todos os arquivos (incluindo aqueles que estão no sistema ou ocultos) dentro de um diretório:

attrib -s -h -r "c:\path_to_folder\*.*" /s /d

Descrição:
-s Remover atributo do sistema
-h Remover atributo oculto de -r Remover atributo somente leitura /s Definir / remover atributos na pasta atual e incluindo subpastas /d Definir / remover atributos de pastas também

    
por 13.04.2017 / 13:44
2

Eu criei esse arquivo em lote para fazer isso. Basicamente, este arquivo em lote irá limpar os atributos read only no diretório its in ou o diretório its in e todos os diretórios inferiores. Espero que alguém encontre um uso para isso. Desculpem qualquer código que possa parecer "ruim", pois estou começando a aprender sozinho arquivos em lote.

@ECHO off
:begin
ECHO Would you like to only remove read only attributes
ECHO from this director or from all the sub directores as
ECHO well?
ECHO.
ECHO [A] This directory only
ECHO [B] All directories - cascading
ECHO [C] Cancel
SET /P actionChoice="Option(A,B,C): "
ECHO.
IF "%actionChoice%" == "A" GOTO A
IF "%actionChoice%" == "B" GOTO B
IF "%actionChoice%" == "C" GOTO C
GOTO badChoice

:A
CLS
ECHO Are you sure you want to remove all read-only
ECHO attributes from this directory only?
ECHO.
ECHO Directory:
ECHO.
ECHO %CD%
ECHO.
SET /P continueChoice="Continue? (Y, N): "
IF "%continueChoice%" == "N" GOTO abort
ECHO Removing Read Only Attributes From Local Directory...
SET currectDirectory=%CD%
ECHO Current directory is: %currectDirectory%
FOR %%G IN (%currectDirectory%\*) DO (
ECHO %%G
ATTRIB -R "%%G"
)
GOTO end

:B
CLS
ECHO Are you sure you want to remove all read-only
ECHO attributes from this directory and all sub-directories?
ECHO.
ECHO Directory:
ECHO.
ECHO %CD%
ECHO.
SET /P continueChoice="Continue? (Y, N): "
IF "%continueChoice%" == "N" GOTO abort
ECHO Removing Read Only Attributes Cascading...
FOR /R %%f IN (*) DO (
ECHO %%f
ATTRIB -R "%%f"
)
GOTO end

:C
CLS
ECHO Cancel: no files have been changed
GOTO end

:badChoice
CLS
ECHO Unknown Option
ECHO.
ECHO.
ECHO.
GOTO begin

:abort
CLS
ECHO No files have been changed
ECHO.
ECHO.
ECHO.
GOTO begin

:end
ECHO Read only attributes removed
PAUSE
    
por 17.07.2017 / 17:40