如何使用PowerShell删除文件上的ReadOnly属性?
答
您可以使用Set-ItemProperty
:
Set-ItemProperty file.txt -name IsReadOnly -value $false
或更短:
sp file.txt IsReadOnly $false
答
$file = Get-Item "C:\Temp\Test.txt"
if ($file.attributes -band [system.IO.FileAttributes]::ReadOnly)
{
$file.attributes = $file.attributes -bxor [system.IO.FileAttributes]::ReadOnly
}
上面的代码片段摘自该article
UPDATE 从注释中使用Keith Hill's实现(我已经测试了这一点,它的工作),这将成为:
$file = Get-Item "C:\Temp\Test.txt"
if ($file.IsReadOnly -eq $true)
{
$file.IsReadOnly = $false
}
+6
实现比这个更简单:$ file.IsReadOnly = $ false – 2009-05-21 15:04:05
答
如果您碰巧使用的是PowerShell Community Extensions:
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
答
即使它不是本地 PowerShell中,仍然可以使用简单的这10个命令:
attrib -R file.txt
答
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
答
使用,或者你可以简单地使用:
get-childitem *.cs -Recurse -File | % { $_.IsReadOnly=$false }
以上将适用于当前文件夹的子树中的所有.cs文件。如果您需要其他类型,只需调整“* .cs”以满足您的需求。
Set-Property是唯一可以在管道中干净地完成并使用通配符的内置方式:{sp * .txt IsReadOnly $ false}或{ls。 -recurse -include * .cs | sp -name IsReadOnly -value $ false} – Jaykul 2009-05-27 14:45:29
使用PowerShell v2我看到了难以使用的CmdLet绑定sp。 PSCX Set-Writable和Set-ReadOnly没有这些问题。我会将我看到的问题发布到博客上,并在稍后与其链接。我建议Keith回答PowerShell v2(现代PowerShell)。 – yzorg 2011-04-21 22:39:33
@yzorg:那你究竟在这里告诉我什么?至于Keith的回答,他正在使用PSCX。并非所有人都安装了这些软件,这并不是真正的PowerShell v1与v2版本。 – Joey 2011-04-22 09:28:00