如何删除powershell的文件夹的只读属性?

时间:2017-11-07 14:07:28

标签: powershell powershell-v2.0 powershell-v3.0 powershell-v4.0

我尝试了很多代码,但仍然无法删除该特定文件夹的只读属性。

下面是删除该文件夹下存在的文件的只读属性但不删除该文件夹的只读属性的代码:

$Path = "C:\Suraj\powershell scripts\review script" 
$Files = Get-ChildItem $Path -Recurse
ForEach ($File in $Files) {
    Write-Host file:$File IsReadOnly: $File.IsReadOnly 
    if ($File.Attributes -ne "Directory" -and $File.Attributes -ne "Directory, Archive") {
        try {
            Set-ItemProperty -Path $Path"\"$File -name IsReadOnly -value $false 
        }
        catch { 
            Write-Host "Error at file " $Path "\" $File 
        }
    } 
}

1 个答案:

答案 0 :(得分:1)

如果文件夹具有ReadOnly属性,可以使用以下方法进行验证:

$folder = Get-Item -Path path/to/folder
$folder.Attributes

默认输出为:

Directory

要添加ReadOnly属性,只需执行:

$folder.Attributes += 'ReadOnly'

如果再次显示属性,它应该如下所示:

ReadOnly, Directory

要删除ReadOnly属性,只需执行:

$folder.Attributes -= 'ReadOnly'

属性再次看起来像这样:

Directory

如您所见,确实可以添加和删除ReadOnly属性,但是正如注释中已经提到的其他属性一样,它没有太大作用。