1. 程式人生 > >CMD中使用attrib命令設定檔案只讀、隱藏屬性詳解

CMD中使用attrib命令設定檔案只讀、隱藏屬性詳解

本文介紹一個cmd下的一個attrib.exe的小程式,它可以用來設定檔案的屬性。我們知道檔案的屬性有隻讀、隱藏、系統、存檔和無內容索引等5個,只讀和隱藏用得比較多,另外三個用得比較少。

不知道大家有沒有用過attrib.exe這個cmd下的小程式,它可以用來設定檔案的屬性。先來看看它的幫助檔案。

C:\Users\splaybow>help attrib
顯示或更改檔案屬性。
ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [+I | -I]
       [drive:][path][filename] [/S [/D] [/L]]
  + 設定屬性。
  - 清除屬性。
  R 只讀檔案屬性。
  A 存檔檔案屬性。
  S 系統檔案屬性。
  H 隱藏檔案屬性。
  I 無內容索引檔案屬性。
  [drive:][path][filename]
      指定 attrib 要處理的檔案。
  /S 處理當前資料夾及其所有子資料夾中的匹配檔案。
  /D 也處理資料夾。
  /L 處理符號連結和符號連結目標的屬性。

例項:去除test.txt各種屬性 attrib -h -r -a -s  test.txt  /s /d

我們用一個例子來看看如何使用attrib設定檔案的屬性。

第一步,先使用echo命令來建立一個檔案:d:\2.txt

C:\Users\splaybow>echo xxxx>d:\2.txt
建立檔案成功後,將不會有任何提示。

第二步,為d:\2.txt檔案新增一個隱藏屬性和一個只讀屬性。

C:\Users\splaybow>attrib +r +h d:\2.txt
設定檔案屬性成功後,也不會有任何提示。

第三步,顯示d:\2.txt的檔案屬性。

C:\Users\splaybow>attrib d:\2.txt
A   HR       D:\2.txt
我們可以看到當前檔案中存在存檔(A)、隱藏(H)、R(只讀)三種屬性。這裡大家可能想問,為什麼會有存檔(A)屬性的存在呢?這個洪哥也解釋不了,估計在使用echo建立檔案時,檔案就已經有存檔(A)屬性了。

第四步,我再來看看把存檔、隱藏、只讀、系統、無內容索引五個屬性全部加上的效果。

C:\Users\splaybow>attrib +a +s +r +i +h d:\2.txt
設定檔案屬性成功後,不會有任何提示。

第五步,檢視一下最後的檔案屬性

C:\Users\splaybow>attrib d:\2.txt
A  SHR  I    D:\2.txt
這樣看到了,五個屬性全部上去了。

最後洪哥總結如下幾點:
1、如果要給檔案加屬性使用“attrib +標記1 +標記2 ... <檔案路徑和名稱>”這樣的語法格式。
2、如果要給檔案去掉一些屬性,把第1條中的加號(+)換成減號(-)即可。
3、如果要檢視當前檔案有存檔、隱藏、只讀、系統、無內容索引五種屬性中的哪些,可以使用“attrib <檔案路徑和名稱>”這樣的語法格式。
4、這些屬性有什麼意義呢?隱藏就是隱藏起來,但使用顯示隱藏的開關還可以看得到。加了系統屬性後,顯示隱藏也看不到,必須要顯示系統檔案才能看到。只讀代表不能修改和刪除,但有一些命令可以強制刪除或修改只讀檔案。
5、以下三條命令說明,如果檔案同時有系統屬性和隱藏屬性,如果想要去掉其中一個,必須兩個先同時都去掉。

PS C:\Users\splaybow> attrib -h d:\2.txt
未重置系統檔案 - D:\2.txt
PS C:\Users\splaybow> attrib -s d:\2.txt
未重置隱藏檔案 - D:\2.txt
PS C:\Users\splaybow> attrib -s -h d:\2.txt