怎样用脚本批量取消文件只读?

wen 实用脚本 2

本文目录导读:

怎样用脚本批量取消文件只读?

  1. Windows 系统
  2. Linux/Mac 系统
  3. 注意事项

Windows 系统

方法1:使用 PowerShell(推荐)

# 取消当前目录及子目录所有文件的只读属性
Get-ChildItem -Path "." -Recurse -File | ForEach-Object {
    $_.IsReadOnly = $false
}
# 或者更简洁的写法
Get-ChildItem -Recurse -File | Set-ItemProperty -Name IsReadOnly -Value $false

特定文件夹操作:

# 指定文件夹路径
$folderPath = "C:\Your\Folder\Path"
Get-ChildItem -Path $folderPath -Recurse -File | ForEach-Object {
    $_.IsReadOnly = $false
}

方法2:使用命令行 (CMD)

@echo off
REM 取消当前目录所有文件的只读属性
attrib -r *.* /s
REM 取消指定文件夹的只读属性
attrib -r "C:\Your\Folder\Path\*.*" /s

参数说明:

  • -r:移除只读属性
  • /s:包括子目录

方法3:使用 Python 脚本

import os
def remove_readonly(folder_path):
    for root, dirs, files in os.walk(folder_path):
        for file in files:
            file_path = os.path.join(root, file)
            try:
                os.chmod(file_path, 0o666)  # 取消只读
                print(f"已处理: {file_path}")
            except Exception as e:
                print(f"处理失败: {file_path} - {e}")
# 使用示例:取消当前目录所有文件只读
remove_readonly(".")

Linux/Mac 系统

方法1:使用 chmod 命令

# 取消当前目录及子目录所有文件只读
find . -type f -exec chmod 644 {} \;
# 取消目录的只读(可执行依赖)
find . -type d -exec chmod 755 {} \;

方法2:使用 bash 脚本

#!/bin/bash
# 取消指定文件夹所有文件的只读属性
folder_path="/path/to/your/folder"
# 对文件赋予读写权限
find "$folder_path" -type f -exec chmod u+w {} \;
# 对目录赋予读写执行权限
find "$folder_path" -type d -exec chmod u+wx {} \;

注意事项

  1. 系统文件警告:不要修改系统关键文件的只读属性

  2. 权限问题:某些文件可能需要管理员/root权限

  3. 预览确认:建议先查看哪些文件是只读的:

    # Windows PowerShell
    Get-ChildItem -Recurse -File | Where-Object { $_.IsReadOnly }
    # Linux/Mac
    find . -type f ! -perm /u+w

选择最适合你的场景的方法即可,建议先用小范围测试,确认无误后再批量处理。

抱歉,评论功能暂时关闭!