Saya perlu menghapus atribut read-only dari semua file di bawah direktori secara rekursif pada Windows 7 menggunakan baris perintah. Bisakah Anda memberikan contoh tentang ini?
Saya perlu menghapus atribut read-only dari semua file di bawah direktori secara rekursif pada Windows 7 menggunakan baris perintah. Bisakah Anda memberikan contoh tentang ini?
Jawaban:
Saya akan menggunakan perintah ATTRIB, misalnya:
attrib -r c:\folder\*.* /s
attrib
adalah perintahnya
-r
adalah flag untuk menghapus atribut read-only
c:\folder\*.*
adalah folder tempat Anda menjalankannya, ditambah wildcard untuk semua file
/s
adalah flag untuk melakukan semua sub direktori dan file
Berikut ini beberapa dokumentasi dan contoh untuk perintah attrib: https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/attrib
/d
jika Anda ingin memproses folder yang sebenarnya juga.
attrib -h -r
).
Pertama, buka command prompt. Lalu cd
ke direktori tempat Anda ingin mulai menerapkan perubahan atribut. Terakhir, masukkan perintah berikut:
attrib -R /S
Itu akan menghapus atribut read-only dari semua file di direktori saat ini, maka itu akan muncul kembali untuk melakukan hal yang sama di semua subdirektori.
attrib
Catatan: Sebagian besar jawaban lain hanya menggunakan -r
yang mungkin tidak berfungsi pada file yang memiliki system
atau hidden
atribut yang ditetapkan.
Jadi di sini adalah solusi untuk menghapus atribut read-only secara rekursif dari semua file (termasuk yang sistem atau tersembunyi) di dalam direktori:
attrib -s -h -r "c:\path_to_folder\*.*" /s /d
Deskripsi:
-s
Hapus atribut sistem Hapus atribut
-h
tersembunyi Hapus atribut
-r
hanya-baca
/s
Set / hapus atribut dalam folder saat ini dan termasuk subfolder
/d
Atur / hapus atribut folder juga
Saya membuat file batch ini untuk melakukan ini. Pada dasarnya file batch ini akan menghapus hanya atribut yang dibaca di dalam direktori atau di direktori dan semua direktori yang lebih rendah. Semoga seseorang menemukan gunanya. Maafkan kode yang mungkin tampak "buruk" karena saya baru mulai mempelajari file batch sendiri.
@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
Banyak opsi di sini tetapi file batch ini mendukung menjatuhkan folder / s dan / atau file / s ke file batch itu sendiri.
Simpan kode ini di bawah untuk Read-only Off.bat
.
Catatan untuk bagaimana bit drop bekerja di dalam kode.
@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
attrib /S -R