So entfernen Sie schreibgeschützte Attribute unter Windows 7 rekursiv

71

Ich muss schreibgeschützte Attribute aller Dateien in einem Verzeichnis unter Windows 7 mithilfe der Befehlszeile rekursiv entfernen. Könnten Sie dazu bitte ein Beispiel geben?

Mert Nuhoglu
quelle
1
Aus meinem Kopf ohne zu testenattrib /S -R
Nixda

Antworten:

89

Ich würde den Befehl ATTRIB verwenden, zum Beispiel:

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

attribDer Befehl
-rist das Flag zum Entfernen schreibgeschützter Attribute.
c:\folder\*.*Der Ordner, in dem Sie ihn ausführen, sowie Platzhalter für alle Dateien
/ssind das Flag für alle Unterverzeichnisse und Dateien

Hier finden Sie weitere Dokumentation und Beispiele für den Befehl attrib: https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/attrib

Callen L
quelle
17
Fügen Sie ein hinzu, /dwenn Sie möchten, dass es auch die eigentlichen Ordner verarbeitet.
LawrenceC
2
Beachten Sie, dass dies bei Dateimarkierungen als "versteckt" oder "System" nicht funktioniert. Um das schreibgeschützte Attribut aus diesen Dateien zu entfernen, müssen Sie auch die anderen Attribute entfernen (zum Beispiel attrib -h -r).
Excelcius
2
Wenn der Pfad Leerzeichen "" enthält, geben Sie Folgendes ein: attrib -r "c: \ Programme (x86) \ SmartGit *. *" / s
Daniel Hári
Die Seite mit diesem Link existiert nicht mehr.
Broots Waymb
25

Öffnen Sie zunächst eine Eingabeaufforderung. cdWechseln Sie dann in das Verzeichnis, in das Sie die Attributänderungen anwenden möchten. Geben Sie abschließend den folgenden Befehl ein:

 attrib -R /S

Dadurch wird das Nur-Lese-Attribut aus allen Dateien im aktuellen Verzeichnis entfernt. Anschließend wird der Vorgang in allen Unterverzeichnissen wiederholt.

stderr
quelle
9

Hinweis: Die meisten anderen Antworten verwenden nur solche, -rdie möglicherweise nicht für Dateien geeignet sind, für die systemoder die hiddenAttribute festgelegt wurden.

Im Folgenden finden Sie eine Lösung zum rekursiven Entfernen von Schreibschutzattributen aus allen Dateien (einschließlich der vom System oder ausgeblendeten) in einem Verzeichnis:

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

Beschreibung:
-s Systemattribut
-hentfernen Ausgeblendetes Attribut entfernen
-rSchreibgeschütztes Attribut /sentfernen Attribute im aktuellen Ordner festlegen /d/ entfernen und Unterordner einbeziehen Attribute von Ordnern festlegen / entfernen

Nur Schatten
quelle
2
Dies sollte als beste Antwort festgelegt werden.
Julius
2

Dazu habe ich diese Batch-Datei erstellt. Grundsätzlich löscht diese Batch-Datei schreibgeschützte Attribute in dem Verzeichnis, in dem sie sich befindet, oder in dem Verzeichnis, in dem sie sich befindet, und in allen niedrigeren Verzeichnissen. Hoffe, jemand findet eine Verwendung dafür. Entschuldigen Sie jeden Code, der als "schlecht" erscheint, da ich gerade anfange, Batch-Dateien selbst zu lernen.

@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
Langsamer Lerner
quelle
0

Viele Optionen hier, aber diese Batchdatei unterstützt das Ablegen von Ordnern und / oder Dateien in die Batchdatei.

Speichern Sie diesen Code unten in Read-only Off.bat.

Beachten Sie, wie das Drop-Bit im Code funktioniert.

@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
Stephen Sherry
quelle