核心命令:attrib
attrib 命令的基本语法是:

attrib [+r | -r] [+a | -a] [+s | -s] [+h | -h] [驱动器:][路径\]文件名 [/s /d]
参数解释:
+r:设置只读属性。-r:清除只读属性。[驱动器:][路径\]文件名:指定要操作的文件或目录。/s:对当前目录及其所有子目录中的文件执行操作。/d:与/s一起使用,同时也对目录执行操作。
常用操作示例
将文件设置为只读
假设你要将 C:\test\report.txt 文件设置为只读。
attrib +r C:\test\report.txt
执行后,report.txt 文件就被标记为只读了,在 Windows 资源管理器中,它的图标通常会变得稍微浅一些。
清除文件的只读属性
如果你想取消 report.txt 的只读属性,以便可以修改或删除它。

attrib -r C:\test\report.txt
查看文件的属性
如果你想查看一个文件的当前属性。
attrib C:\test\report.txt
输出示例:
A C:\test\report.txt
A:代表 存档 属性,这是新创建或修改过的文件的默认属性。R:如果文件是只读的,这里会显示R。S:如果文件是系统文件,这里会显示S。H:如果文件是隐藏文件,这里会显示H。
如果你想查看更详细的信息,可以加上 /v (verbose) 参数:
attrib /v C:\test\report.txt
批量设置目录下所有文件为只读
如果你想将 C:\test 目录下的所有文件(不包括子目录)都设置为只读。

attrib +r C:\test\*.*
批量设置目录及其子目录中所有文件为只读
这是一个非常强大的功能,如果你想递归地将 C:\test 目录及其所有子目录中的所有文件都设置为只读。
attrib +r C:\test\*.* /s
清除整个目录的只读属性
从其他地方(如U盘、光盘)复制过来的文件夹,里面的所有文件可能都是只读的,导致修改或删除非常麻烦,这时可以一次性清除。
假设要清除 D:\backup 目录及其所有子目录中所有文件的只读属性。
attrib -r D:\backup\*.* /s
注意:这里的
/s只对文件生效,如果你想同时清除目录本身的只读属性,需要加上/d。attrib -r D:\backup\*.* /s /d
关于文件夹的只读属性
你可能注意到,文件夹在 Windows 中也有“只读”选项,但它和文件的只读属性含义不同。
- 文件夹的“只读”属性:在 Windows 图形界面中,文件夹的“只读”复选框是一个“混合”状态(部分是只读,部分不是),这个设置实际上控制的是该文件夹的“自定义”或“索引”属性,而不是我们通常理解的文件锁定。
- 文件夹的“系统”属性:当一个文件夹被设置为“系统”和“隐藏”时,它通常就是受保护的系统文件夹(如
C:\System Volume Information)。
如果你想通过命令行锁定一个文件夹本身(使其内容无法被修改或删除),通常的做法是设置其“系统”和“隐藏”属性,而不是“只读”属性。
要隐藏并保护 C:\my_secret_folder:
attrib +s +h C:\my_secret_folder
要取消保护:
attrib -s -h C:\my_secret_folder
特殊情况:删除顽固的只读文件
即使你清除了只读属性,也可能因为文件被其他程序占用或权限问题而无法删除,这时可以结合 del 命令的 /f (强制) 和 /q (安静) 参数。
del /f /q C:\test\report.txt
/f:强制删除只读文件。/q:安静模式,不提示确认信息。
总结表格
| 命令 | 作用 |
|---|---|
attrib +r filename.txt |
将单个文件设置为只读 |
attrib -r filename.txt |
将单个文件的只读属性清除 |
attrib filename.txt |
查看单个文件的属性 |
attrib +r *.* /s |
将当前目录及其子目录下所有文件设为只读 |
attrib -r *.* /s /d |
将整个目录树(包括文件和文件夹)的只读属性清除 |
del /f filename.txt |
强制删除一个只读文件 |
希望这份详细的说明能帮助你完全掌握 DOS 命令下的只读属性操作!
