本文介紹一個PowerShell中如何設置文件屬性。我們知道文件的屬性有只讀、隱藏、系統、存檔和無內容索引等5個,只讀和隱藏用得比較多,另外三個用得比較少。
一、文件的屬性
不知道大家有沒有用過attrib.exe這個cmd下的小程序,它可以用來設置文件的屬性。建議大家先去了解一下這個attrib小程序。可以參考文章:使用attrib設置文件只讀、隱藏和系統屬性
下面我們來看看如何在PowerShell中設置文件只讀、隱藏和系統屬性。
我們知道,獲取一個文件對象可以使用Get-Item這個cmdlet。但我們來看看下面的操作:
代碼如下:PS C:/Users/splaybow> get-item d:/2.txt
Get-Item : 找不到項 D:/2.txt。
所在位置 行:1 字符: 9
+ get-item <<<< d:/2.txt
+ CategoryInfo : ObjectNotFound: (D:/2.txt:String) [Get-Item], IO
Exception
+ FullyQualifiedErrorId : ItemNotFound,Microsoft.PowerShell.Commands.GetIt
emCommand
這個提示似乎很明確的告訴我們,找不到D:/2.txt這個文件。真的沒有這個文件嗎?不是的!這個文件之前被我設置了隱藏屬性的系統屬性,待我把它去掉試試。
代碼如下:
PS C:/Users/splaybow> attrib -h -s d:/2.txt
PS C:/Users/splaybow> get-item d:/2.txt
目錄: D:/
Mode LastWriteTime Length Name
---- ------------- ------ ----
-ar-- 2013/11/11 20:04 6 2.txt
這下子就找到該文件了。另外,大家可以出輸出結果中看到Mode這部分,“ar”表示,該文件上還有存檔屬性和只讀屬性。我們也可以通過下面的命令來查看文件的屬性:
代碼如下:
PS C:/Users/splaybow> $file = Get-Item d:/2.txt
PS C:/Users/splaybow> $file.Mode
-ar--
關于文件的五種屬性,洪哥就不再介紹了,有興趣的朋友可以參考attrib的那篇文章。
二、設置文件屬性
現在我們測試去掉文件上的只讀屬性,要用到文件對象的IsReadOnly屬性。
代碼如下:
PS C:/Users/splaybow> $file.IsReadOnly = $false
PS C:/Users/splaybow> $file.Mode
-a---
從這個結果上看,是不是r(只讀)沒有了?!要想重新加回來,再把IsReadOnly設置為$true即可。
聰明如洪哥者,一定會想,隱藏屬性是不是可以通過$file對象的IsHidden來控制呢?呵呵,我們想錯了。要想知道$file對象有哪些屬性和方法,可以使用“$file | Get-Member”這個命令來查看。當然,任何對象,我們想知道它有哪些方法和屬性,都可以通過“<對象變量> | Get-Memeber”的方式去獲取。
新聞熱點
疑難解答