So entfernen Sie das Nur-Lese-Attribut rekursiv unter Windows 7
Ich muss schreibgeschützte Attribute aller Dateien unter einem Verzeichnis rekursiv unter Windows 7 über die Befehlszeile entfernen. Könnten Sie dazu bitte ein Beispiel geben?
Ich muss schreibgeschützte Attribute aller Dateien unter einem Verzeichnis rekursiv unter Windows 7 über die Befehlszeile entfernen. Könnten Sie dazu bitte ein Beispiel geben?
Ich würde den ATTRIB-Befehl verwenden, zum Beispiel:
attrib -r c:\folder\*.* /s
attrib
ist der Befehl
-r
ist das Flag zum Entfernen von Nur-Lese-Attributen
c:\folder\*.*
ist der Ordner, in dem Sie ihn ausführen, plus Platzhalter für alle Dateien
/s
ist das Flag für alle Unterverzeichnisse und Dateien
Hier finden Sie weitere Dokumentation und Beispiele für den Attrib-Befehl: https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/attrib
Öffnen Sie zunächst eine Eingabeaufforderung. Gehen Sie dann cd
in das Verzeichnis, in dem Sie mit der Anwendung der Attributänderungen beginnen möchten. Geben Sie schließlich den folgenden Befehl ein:
attrib -R /S
Das entfernt das Nur-Lesen-Attribut aus allen Dateien im aktuellen Verzeichnis und rekursiert dann nach unten, um das Gleiche in allen Unterverzeichnissen zu tun.
attrib
Hinweis: Die meisten anderen Antworten verwenden nur -r
, was bei Dateien, die die Attribute system
oder hidden
gesetzt haben, möglicherweise nicht funktioniert.
Hier ist also eine Lösung für das rekursive Entfernen des Nur-Lesen-Attributs von allen Dateien (einschließlich derjenigen, die System oder versteckt sind) innerhalb eines Verzeichnisses:
attrib -s -h -r "c:\path_to_folder\*.*" /s /d
Beschreibung:
-s
Systemattribut entfernen
-h
Verstecktes Attribut entfernen
-r
Nur-Lese-Attribut entfernen/s
Attribute im aktuellen Ordner und einschließlich Unterordnern setzen/entfernen/d
Attribute von Ordnern ebenfalls setzen/entfernen
Dazu habe ich diese Batch-Datei erstellt. Im Grunde genommen löscht diese Batch-Datei die Nur-Lese-Attribute in dem Verzeichnis, in dem sie sich befindet, oder in dem Verzeichnis, in dem sie sich befindet, und allen darunter liegenden Verzeichnissen. Ich hoffe, jemand findet eine Verwendung dafür. Entschuldigen Sie bitte jeden Code, der “schlecht” aussieht, da ich gerade erst 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
Viele Optionen hier, aber diese Batch-Datei unterstützt das Ablegen von Ordner/s und/oder Datei/s in der Batch-Datei selbst.
Speichern Sie diesen Code unten in Read-only Off.bat
.
Beachten Sie, wie das Drop-Bit innerhalb des Codes 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