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

Comment supprimer récursivement un attribut en lecture seule sous Windows 7

Advertisement

Je dois supprimer les attributs en lecture seule de tous les fichiers d'un répertoire de manière récursive sous Windows 7 en utilisant la ligne de commande. Pourriez-vous me donner un exemple à ce sujet ?

Advertisement

Réponses (5)

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

J'utiliserais la commande ATTRIB, par exemple :

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

attrib est la commande -r est le drapeau pour supprimer les attributs en lecture seule c:\folder\*.* est le dossier dans lequel vous l'exécutez, plus les jokers pour tous les fichiers /s est le drapeau pour faire tous les sous-répertoires et les fichiers

Voici une documentation supplémentaire et des exemples pour la commande attrib : https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/attrib

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

Tout d'abord, ouvrez une invite de commande. Puis cd dans le répertoire où vous voulez commencer à appliquer les changements d'attributs. Enfin, entrez la commande suivante :

attrib -R /S

Cela supprimera l'attribut en lecture seule de tous les fichiers du répertoire courant, puis il reviendra en arrière pour faire la même chose dans tous les sous-répertoires.

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

Note: La plupart des autres réponses n'utilisent que -r ce qui pourrait ne pas fonctionner sur les fichiers qui ont des attributs system ou hidden définis.

Voici donc une solution pour supprimer récursivement l'attribut de lecture seule de tous les fichiers (y compris ceux qui sont système ou cachés) à l'intérieur d'un répertoire :

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

Description: -s Supprimer l'attribut système -h Supprimer l'attribut caché -r Supprimer l'attribut en lecture seule/s Définir/supprimer les attributs du dossier courant et y compris les sous-dossiers/d Définir/supprimer également les attributs des dossiers

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

C'est pour cela que j'ai créé ce fichier de lot. En principe, ce fichier de traitement par lots efface les attributs en lecture seule du répertoire dans lequel il se trouve ou du répertoire dans lequel il se trouve et de tous les répertoires inférieurs. J'espère que quelqu'un lui trouvera une utilité. Excusez tout code qui peut sembler “pauvre” car je commence tout juste à apprendre les fichiers batch moi-même.

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

Beaucoup d'options sont disponibles ici, mais ce fichier de traitement par lots permet de déposer des dossiers et/ou des fichiers dans le fichier de traitement par lots lui-même.

Enregistrez ce code ci-dessous à Read-only Off.bat.

Notez comment le bit de dépôt fonctionne à l'intérieur du code.

@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
Advertisement
Advertisement