PowerShell (sürüm 1.0) komut dosyası kullanarak bir dosyadaki ReadOnly özniteliğini nasıl kaldırabilirim?
Yanıtlar:
Şunları kullanabilirsiniz Set-ItemProperty
:
Set-ItemProperty file.txt -name IsReadOnly -value $false
veya daha kısa:
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
}
Yukarıdaki kod parçacığı bu makaleden alınmıştır
GÜNCELLEME Keith Hill'in yorumlardaki uygulamasını kullanarak (bunu test ettim ve işe yarıyor), bu şöyle olur:
$file = Get-Item "C:\Temp\Test.txt"
if ($file.IsReadOnly -eq $true)
{
$file.IsReadOnly = $false
}
Native PowerShell olmasa da, bunun için hala basit Attrib komutunu kullanabilirsiniz :
attrib -R file.txt
veya basitçe kullanabilirsiniz:
get-childitem *.cs -Recurse -File | % { $_.IsReadOnly=$false }
Yukarıdakiler, geçerli klasörün alt ağacındaki tüm .cs dosyaları için çalışacaktır. Dahil edilen diğer türlere ihtiyacınız varsa, "* .cs" dosyasını ihtiyaçlarınıza göre ayarlamanız yeterlidir.
Kullanacağınız edersek PowerShell Topluluk Uzantıları :
PS> Set-Writable test.txt
PS> dir . -r *.cs | Set-Writable
# Using alias swr
PS> dir . -r *.cs | swr
Bunun tersini şu şekilde yapabilirsiniz:
PS> dir . -r *.cs | Set-ReadOnly
# Using alias sro
PS> dir . -r *.cs | sro
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)
Bazı problemleri çözmeye yardımcı olan ve bu koda yardımcı olan herkese teşekkürler
bu kod benim için çalışıyor .. bir klasörü okuma ve yazma iznine sahip herkesle paylaşmak için bunu .net'te kullanabilirsiniz.