পাওয়ারশেল ব্যবহার করে কীভাবে ফাইলটিতে পঠনযোগ্য অ্যাট্রিবিউট সরানো যায়?


উত্তর:


146

আপনি ব্যবহার করতে পারেন Set-ItemProperty:

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

বা সংক্ষিপ্ত:

sp file.txt IsReadOnly $false

4
সেট-প্রপার্টি হ'ল একমাত্র অন্তর্নির্মিত উপায় আপনি পরিষ্কারভাবে এটি পাইপলাইনে এবং ওয়াইল্ডকার্ডগুলি ব্যবহার করতে পারেন: {এসপি * .txt ইসরেডঅনলি $ মিথ্যা} বা {এলএস। -Recurse- অন্তর্ভুক্ত * .cs | SP -name IsReadOnly -value $ মিথ্যা}
Jaykul

পাওয়ারশেল ভি 2 ব্যবহার করে আমি এসপি-র জন্য হার্ড-টু-ইউজ করে সিএমডিলেট লাইন বাঁধছি। পিএসসিএক্স সেট-লিখনযোগ্য এবং সেট-পঠন কেবল এই সমস্যাগুলি নেই। আমি যে সমস্যাগুলি দেখছি তা ব্লগ করব এবং এটির পরে লিঙ্ক করব। আমি পাওয়ারশেল ভি 2 (আধুনিক পাওয়ারশেল) এর জন্য কিথের উত্তরটি প্রস্তাব করছি।
yzorg

4
@ ইয়জর্গ: তাহলে আপনি আমাকে এখানে ঠিক কী বলছেন? কিথের উত্তর হিসাবে, তিনি পিএসসিএক্স ব্যবহার করছেন। প্রত্যেকেরই এটি ইনস্টল করা নেই এবং এটি পাওয়ারশেল ভি 1 বনাম ভি 2 এর সত্যিই কেস নয়।
জো

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    
}  

উপরের কোড স্নিপেট এই নিবন্ধ থেকে নেওয়া হয়েছে

মন্তব্যগুলি থেকে কিথ হিলের বাস্তবায়ন ব্যবহার করে আপডেট করুন (আমি এটি পরীক্ষা করেছি এবং এটি কাজ করে), এটি হয়ে যায়:

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

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

6
প্রয়োগটি এর চেয়ে সহজতর: $ file.IsReadOnly = $ মিথ্যা
কেথ হিল

15

যদিও এটি নেটিভ পাওয়ারশেল নয়, এখনও কেউ এর জন্য সহজ অ্যাট্রিবি কমান্ডটি ব্যবহার করতে পারেন :

attrib -R file.txt

ধন্যবাদ! এটি আমার জন্য কাজ করেছে: স্যার। -আর * .সিএস | % {$ _। পূর্ণ নাম} | % {বৈশিষ্ট্য -r $ _}
ক্যামেরন ট্যাগগার্ট

4
একটি পদক্ষেপ এড়াতে পারে: dir। -আর * .সিএস | % {বৈশিষ্ট্য-আর $ _। পূর্ণ নাম}
নাথান হার্টলি

9

অথবা আপনি সহজভাবে ব্যবহার করতে পারেন:

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

উপরে বর্তমান ফোল্ডারের উপ-ট্রিতে সমস্ত .cs ফাইলের জন্য কাজ করবে। আপনার যদি অন্য ধরণের অন্তর্ভুক্ত থাকে তবে আপনার প্রয়োজনের সাথে কেবল "* .cs" সামঞ্জস্য করুন।


4
কমান্ডটি অ্যাডজাস্ট করুন (অ্যাড-ফাইল) কেবলমাত্র ফাইলগুলির সাথে কাজ করার জন্য। ডিরেক্টরিতে সম্পত্তি থাকে না।
ববি ক্যানন


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)

যে কারও জন্য কিছু সমস্যা সমাধানে সহায়তা করছেন ... এবং এই কোডটিকে সহায়তা করছেন বলে ধন্যবাদ

এই কোডটি আমার পক্ষে কাজ করছে .. পড়ার এবং লেখার অনুমতি নিয়ে প্রত্যেকের সাথে একটি ফোল্ডার ভাগ করে নেওয়ার জন্য আপনি এটি নেট এ ব্যবহার করতে পারেন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.