I need to remove read-only attributes of all files under a directory recursively on Windows 7 using command line. Could you please provide an example on this?

  • 1
    Out of my head without testing attrib /S -R – nixda Oct 3 '13 at 15:54
up vote 76 down vote accepted

I would use the ATTRIB command, for example:

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

attrib is the command
-r is the flag for removing read-only attributes
c:\folder\*.* is the folder you are running it on, plus wildcards for all files
/s is the flag for doing all sub directories and files

Here is some more documentation and examples for the attrib command: http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/attrib.mspx?mfr=true

  • 12
    Add a /d if you want it to process the actual folders too. – LawrenceC Oct 3 '13 at 17:00
  • 2
    Note that this doesn't work with files markes as "hidden" or "system". In order to remove the read-only attribute from those files you have to remove the other attributes as well (for example attrib -h -r). – Excelcius Apr 8 '15 at 8:43
  • 1
    if path contain spaces put in "" like: attrib -r "c:\Program Files (x86)\SmartGit*.*" /s – Daniel Hári Jun 15 '16 at 18:09

First, open up a command prompt. Then cd into the directory where you want to start applying the attribute changes. Finally, enter the following command:

 attrib -R /S

That will remove the read-only attribute from all files in the current directory, then it will recurse down to do the same thing in all the subdirectories.

Note: Most of the other answers are using only -r which might not work on files which have system or hidden attributes set.

So here is a solution for recursively removing read-only attribute from all the files (including those which are system or hidden) inside a directory:

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

Description:
-s Remove system attribute
-h Remove hidden attribute
-r Remove read-only attribute /s Set/remove attributes in current folder and including subfolders /d Set/remove attributes of folders too

  • 1
    This should be set as the best answer. – Julius May 30 at 11:09

I created this batch file to do this. Basically this batch file will clear read only attributes in the directory its in or the directory its in and all lower directories. Hope someone finds a use for it. Excuse any code that may seem "poor" as I am just starting to learn batch files myself.

@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

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.