Как удалить атрибут ReadOnly для файла с помощью PowerShell? - PullRequest
96 голосов
/ 21 мая 2009

Как удалить атрибут ReadOnly для файла с помощью сценария PowerShell (версия 1.0)?

Ответы [ 6 ]

141 голосов
/ 22 мая 2009

Вы можете использовать Set-ItemProperty:

Set-ItemProperty file.txt -name IsReadOnly -value $false

или короче:

sp file.txt IsReadOnly $false
16 голосов
/ 21 мая 2009
$file = Get-Item "C:\Temp\Test.txt"

if ($file.attributes -band [system.IO.FileAttributes]::ReadOnly)  
{  
  $file.attributes = $file.attributes -bxor [system.IO.FileAttributes]::ReadOnly    
}  

Приведенный выше фрагмент кода взят из этой статьи

UPDATE Используя реализацию Кейта Хилла из комментариев (я проверил это, и это работает), это становится:

$file = Get-Item "C:\Temp\Test.txt"

if ($file.IsReadOnly -eq $true)  
{  
  $file.IsReadOnly = $false   
}  
15 голосов
/ 22 мая 2009

Даже если это не Native PowerShell, для этого все равно можно использовать простую команду Attrib :

attrib -R file.txt
8 голосов
/ 24 сентября 2014

или вы можете просто использовать:

get-childitem *.cs -Recurse -File | % { $_.IsReadOnly=$false }

Выше будет работать для всех файлов .cs в поддереве текущей папки. Если вам нужны другие типы, просто настройте «* .cs» в соответствии с вашими потребностями.

7 голосов
/ 21 мая 2009

Если вы используете Расширения сообщества 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
2 голосов
/ 13 августа 2013
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

...