递归设置文件属性

时间:2013-01-16 21:16:12

标签: powershell

此代码:

Get-ChildItem $targetConfig -Recurse | Set-ItemProperty -Name IsReadOnly -Value $false

返回几个错误:

  

Set-ItemProperty:Property System.Boolean IsReadOnly = False不   存在。在行:1字符:56   + Get-ChildItem $ targetConfig -Recurse | Set-ItemProperty<<<< -Name IsReadOnly -Value $ false       + CategoryInfo:ReadError:(System.Boolean IsReadOnly = False:PSNoteProperty)[Set-ItemProperty],IOException       + FullyQualifiedErrorId:SetPropertyError,Microsoft.PowerShell.Commands.SetItemPropertyCommand

这个错误意味着什么?

1 个答案:

答案 0 :(得分:7)

这是因为:

Get-ChildItem $targetConfig -Recurse

返回DirectoryInfo和FileInfo。并且Set-ItemProperty在为DirectoryInfo设置“ReadOnly”时失败。

要处理此用途:

Get-ChildItem $targetConfig -Recurse |
    Where-Object {$_.GetType().ToString() -eq "System.IO.FileInfo"} |
    Set-ItemProperty -Name IsReadOnly -Value $false