Cách xóa thuộc tính chỉ đọc đệ quy trên Windows 7


71

Tôi cần xóa các thuộc tính chỉ đọc của tất cả các tệp trong một thư mục đệ quy trên Windows 7 bằng dòng lệnh. Bạn có thể vui lòng cung cấp một ví dụ về điều này?


1
Ra khỏi đầu tôi mà không kiểm traattrib /S -R
nixda

Câu trả lời:


89

Tôi sẽ sử dụng lệnh ATTRIB, ví dụ:

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

attribLệnh
-rlà cờ để xóa các thuộc tính chỉ đọc
c:\folder\*.*là thư mục bạn đang chạy, cộng với các ký tự đại diện cho tất cả các tệp
/slà cờ để thực hiện tất cả các thư mục con và tệp

Dưới đây là một số tài liệu và ví dụ khác cho lệnh attrib: https://docs.microsoft.com/en-us/windows-server/adftime/windows-commands/attrib


17
Thêm một /dnếu bạn muốn nó xử lý các thư mục thực tế quá.
LawrenceC

2
Lưu ý rằng điều này không hoạt động với các tập tin đánh dấu là "ẩn" hoặc "hệ thống". Để xóa thuộc tính chỉ đọc khỏi các tệp đó, bạn cũng phải xóa các thuộc tính khác (ví dụ attrib -h -r).
Excelcius

2
nếu đường dẫn chứa khoảng trắng được đặt trong "" như: attrib -r "c: \ Program Files (x86) \ SmartGit *. *" / s
Daniel Hári

Trang tại liên kết đó không còn tồn tại.
Broots Waymb

25

Đầu tiên, mở một dấu nhắc lệnh. Sau đó cdvào thư mục mà bạn muốn bắt đầu áp dụng các thay đổi thuộc tính. Cuối cùng, nhập lệnh sau:

 attrib -R /S

Điều đó sẽ loại bỏ thuộc tính chỉ đọc khỏi tất cả các tệp trong thư mục hiện tại, sau đó nó sẽ lặp lại để làm điều tương tự trong tất cả các thư mục con.


9

Lưu ý: Hầu hết các câu trả lời khác chỉ sử dụng có -rthể không hoạt động trên các tệp có systemhoặc hiddenthuộc tính được đặt.

Vì vậy, đây là một giải pháp để loại bỏ đệ quy thuộc tính chỉ đọc khỏi tất cả các tệp (bao gồm cả các tệp là hệ thống hoặc ẩn) trong một thư mục:

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

Mô tả:
-s Xóa thuộc tính hệ thống Xóa thuộc tính
-hẩn Xóa thuộc tính
-rchỉ đọc /sĐặt / xóa thuộc tính trong thư mục hiện tại và bao gồm cả các thư mục con /dĐặt / xóa thuộc tính của các thư mục.


2
Điều này nên được đặt là câu trả lời tốt nhất.
Julius

2

Tôi đã tạo tập tin này để làm điều này. Về cơ bản tệp bó này sẽ xóa các thuộc tính chỉ đọc trong thư mục của nó trong hoặc thư mục của nó trong và tất cả các thư mục thấp hơn. Hy vọng ai đó tìm thấy một sử dụng cho nó. Xin lỗi vì bất kỳ mã nào có vẻ "kém" vì tôi mới bắt đầu tự học các tệp bó.

@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

Có rất nhiều tùy chọn ở đây nhưng tệp bó này hỗ trợ thả thư mục / s và / hoặc tệp / s vào chính tệp bó.

Lưu mã này dưới đây để Read-only Off.bat.

Lưu ý về cách hoạt động của bit drop bên trong mã.

@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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.