如何使用 PowerShell(1.0 版)脚本删除文件的 ReadOnly 属性?
问问题
77790 次
6 回答
148
您可以使用Set-ItemProperty
:
Set-ItemProperty file.txt -name IsReadOnly -value $false
或更短:
sp file.txt IsReadOnly $false
于 2009-05-21T23:57:08.383 回答
16
$file = Get-Item "C:\Temp\Test.txt"
if ($file.attributes -band [system.IO.FileAttributes]::ReadOnly)
{
$file.attributes = $file.attributes -bxor [system.IO.FileAttributes]::ReadOnly
}
上面的代码片段摘自这篇文章
更新 使用评论中的 Keith Hill 的实现(我已经测试过了,它确实有效),这变成了:
$file = Get-Item "C:\Temp\Test.txt"
if ($file.IsReadOnly -eq $true)
{
$file.IsReadOnly = $false
}
于 2009-05-21T14:22:52.597 回答
15
即使它不是本机PowerShell,仍然可以为此使用简单的Attrib命令:
attrib -R file.txt
于 2009-05-22T15:49:21.303 回答
10
或者您可以简单地使用:
get-childitem *.cs -Recurse -File | % { $_.IsReadOnly=$false }
以上将适用于当前文件夹子树中的所有 .cs 文件。如果您需要包含其他类型,则只需根据您的需要调整“*.cs”。
于 2014-09-24T07:09:26.663 回答
7
如果您碰巧使用PowerShell 社区扩展:
PS> Set-Writable test.txt
PS> dir . -r *.cs | Set-Writable
# Using alias swr
PS> dir . -r *.cs | swr
你可以像这样做相反的事情:
PS> dir . -r *.cs | Set-ReadOnly
# Using alias sro
PS> dir . -r *.cs | sro
于 2009-05-21T15:01:03.723 回答
2
Shell("net share sharefolder=c:\sharefolder/GRANT:Everyone,FULL")
Shell("net share sharefolder= c:\sharefolder/G:Everyone:F /SPEC B")
Shell("Icacls C:\sharefolder/grant Everyone:F /inheritance:e /T")
Shell("attrib -r +s C:\\sharefolder\*.* /s /d", AppWinStyle.Hide)
感谢任何帮助解决某些问题的人......并帮助此代码
此代码对我有用.. 与具有读写权限的每个人共享一个文件夹,您可以在.net 中使用它
于 2013-08-13T02:56:52.150 回答