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 fornecer um exemplo disso?
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 fornecer um exemplo disso?
Respostas:
Eu usaria o comando ATTRIB, por exemplo:
attrib -r c:\folder\*.* /s
attrib
é o comando
-r
é o sinalizador para remover atributos somente leitura
c:\folder\*.*
é a pasta na qual você está executando, além de caracteres curinga para todos os arquivos
/s
é o sinalizador para executar todos os subdiretórios e arquivos
Aqui estão mais documentação e exemplos para o comando attrib: https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/attrib
/d
se desejar que também processe as pastas reais.
attrib -h -r
).
Primeiro, abra um prompt de comando. Em seguida, cd
no diretório em que deseja começar a aplicar as alterações de atributo. Por fim, digite o seguinte comando:
attrib -R /S
Isso removerá o atributo somente leitura de todos os arquivos no diretório atual e recuará para fazer a mesma coisa em todos os subdiretórios.
attrib
Nota: A maioria das outras respostas está usando apenas o -r
que pode não funcionar em arquivos que possuem system
ou hidden
atributos definidos.
Então, aqui está uma solução para remover recursivamente o atributo somente leitura de todos os arquivos (incluindo aqueles que são do 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 Remover atributo
-h
oculto Remover atributo
-r
somente leitura
/s
Definir / remover atributos na pasta atual e incluindo subpastas
/d
Definir / remover também atributos das pastas
Eu criei este arquivo em lotes para fazer isso. Basicamente, esse arquivo em lotes limpa os atributos somente leitura no diretório em que está ou no diretório em e em todos os diretórios inferiores. Espero que alguém encontre um uso para isso. Desculpe qualquer código que possa parecer "ruim", pois estou começando a aprender 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
Muitas opções aqui, mas esse arquivo em lotes suporta a exclusão de pastas e / ou arquivos no próprio arquivo em lotes.
Salve este código abaixo em Read-only Off.bat
.
Observe como o bit de gota funciona dentro do código.
@echo off
title ' %~nx0 ' by stephen147
color 5F
rem Place this inside a folder and run to remove the read-only attribute in the root folder and any folders or files within.
rem Or drop the folder/s and/or file/s to the batch file itself.
cd /d "%~dp0"
echo.
echo.Do you want to remove the read-only attributes inside this folder ? [ Ctrl + C to cancel ]
echo.
pause
echo.
echo.%cd%
attrib -s -d -r "%cd%\*.*"
attrib -s -d -r "%cd%"
rem This line supports dropping the folder/s and/or file/s to the batch file itself.
attrib -r "%*"
echo.
echo.Done
timeout /T 5
EXIT
attrib /S -R