2013-10-03 15:49:37 +0000 2013-10-03 15:49:37 +0000
72
72

Cómo eliminar el atributo de sólo lectura de forma recursiva en Windows 7

Necesito eliminar los atributos de sólo lectura de todos los archivos de un directorio de forma recursiva en Windows 7 utilizando la línea de comandos. ¿Podría proporcionar un ejemplo sobre esto?

Respuestas (5)

91
91
91
2013-10-03 15:56:07 +0000

Yo usaría el comando ATTRIB, por ejemplo:

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

attrib es el comando -r es la bandera para eliminar los atributos de sólo lectura c:\folder\*.* es la carpeta en la que lo estás ejecutando, además de comodines para todos los archivos /s es la bandera para hacer todos los subdirectorios y archivos

Aquí hay más documentación y ejemplos para el comando attrib: https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/attrib

25
25
25
2013-10-03 15:57:44 +0000

En primer lugar, abra un símbolo del sistema. A continuación, introduzca cd en el directorio en el que desea empezar a aplicar los cambios de atributos. Por último, introduce el siguiente comando:

attrib -R /S

Eso eliminará el atributo de sólo lectura de todos los archivos en el directorio actual, luego hará un recorrido hacia abajo para hacer lo mismo en todos los subdirectorios.

11
11
11
2017-04-13 11:44:22 +0000

Nota: La mayoría de las otras respuestas están usando sólo -r lo que podría no funcionar en archivos que tienen atributos system o hidden.

Así que aquí está una solución para eliminar recursivamente el atributo de sólo lectura de todos los archivos (incluyendo los que son del sistema u ocultos) dentro de un directorio:

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

Descripción: -s Eliminar el atributo de sistema -h Eliminar el atributo oculto -r Eliminar el atributo de sólo lectura/s Establecer/eliminar los atributos en la carpeta actual e incluyendo las subcarpetas/d Establecer/eliminar los atributos de las carpetas también

2
2
2
2017-07-17 15:40:44 +0000

He creado este archivo por lotes para hacer esto. Básicamente, este archivo por lotes borrará los atributos de sólo lectura en el directorio en el que se encuentra o el directorio en el que se encuentra y todos los directorios inferiores. Espero que alguien encuentre un uso para ello. Disculpe cualquier código que pueda parecer “pobre” ya que estoy empezando a aprender los archivos por lotes a mí mismo.

@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
0
0
0
2019-07-14 16:54:55 +0000

Hay muchas opciones aquí, pero este archivo por lotes admite la colocación de carpetas y/o archivos en el propio archivo por lotes.

Guarde este código en Read-only Off.bat.

Observe cómo funciona el bit de drop dentro del 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