كيفية إزالة السمة Readonly على الملف باستخدام PowerShell؟

StackOverflow https://stackoverflow.com/questions/893167

سؤال

كيف يمكنني إزالة السمة Readonly على ملف، باستخدام برنامج نصي PowerShell (الإصدار 1.0)؟

هل كانت مفيدة؟

المحلول

يمكنك استخدام 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    
}  

يتم أخذ مقتطف التعليمات البرمجية أعلاه من هذا شرط

تحديثاستخدام كيث هيل التنفيذ من التعليقات (اختبرت هذا، ويعمل ذلك)، وهذا يصبح:

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

if ($file.IsReadOnly -eq $true)  
{  
  $file.IsReadOnly = $false   
}  

على الرغم من أنها ليست كذلك محلي PowerShell، لا يزال بإمكان المرء استخدام البساطة attrib. أمر لهذا:

attrib -R file.txt

أو يمكنك ببساطة استخدام:

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

أعلاه سوف تعمل لجميع ملفات .cs في شجرة الفرعية للمجلد الحالي. إذا كنت بحاجة إلى أنواع أخرى مضمنة، فقم ببساطة بضبط "* .cs" لاحتياجاتك.

إذا حدث أن تستخدم ملحقات مجتمع 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
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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top