在PowerShell中,我們可以輕鬆的與資料、對象進行互動,為了簡化我們訪問外部資料,PowerShell允許我們像操作磁碟機、檔案一樣對資料、對象等進行操作。
使用這條命令,查看我們已有的Providers:
get-psprovider
實際上,每一個Provider就是一個動態連結程式庫(.dll),在PowerShell中也可以被稱之為“嵌入式管理單元”,在嵌入式管理單元中,有詳細的代碼實現我們的各種操作。PowerShell甚至允許我們自己編寫Provider:http://msdn.microsoft.com/en-us/library/cc136763(VS.85).aspx
我們對資料等的操作方式有很多,例如:
| cmdlet |
功能 |
cmd command |
alias |
| get-location |
目前的目錄 |
pwd |
gl |
| set-location |
改變操作目錄 |
cd,chdir |
sl |
| new-item |
建立檔案或檔案夾 |
無 |
ni |
| rename-item |
重新命名 |
rn |
rni |
| copy-item |
複製 |
copy |
cpi |
| move-item |
移動 |
move |
mi |
| remove-item |
刪除 |
del |
ri |
| set-item |
設定內容 |
無 |
si |
| clear-item |
刪除內容 |
無 |
cli |
| mkdir |
建立檔案夾 |
md |
無 |
| set-content |
設定內容 |
無 |
sc |
| get-content |
擷取內容 |
type |
gc |
PSDriver
可以通過PowerShell中的PSDriver來擷取當前磁碟機列表,基本上所有的Provider都有一個唯一的PSDriver,但是檔案系統和註冊表卻是個例外,通過下面的命令查看:
get-psdriver
注意:中的"Name"在顯示時並沒有顯示冒號(:),但是我們在使用時,一定要加上的,如alias:、c:等。
環境變數
PowerShell中的環境變數類似於CMD中的"set"命令,可以使用如下命令查看當前機器上的環境變數設定:
cd env:
ls
我們試著擷取一些環境變數的值。
ls OS
顯示所有屬性:
ls OS | format-list *
再試試建立新的環境變數:
new-item -path . -Name New -Value “New”<enter>
下面,我們接著認識一下在"get-childitem"時所顯示的"Mode"。
第一位:d表示檔案夾 -表示目錄
後四位(a、r、h、s):a存檔 r唯讀 h隱藏 s系統 -表示該位未被設定
在預設情況下,"get-childitem"是不會顯示出隱藏檔案的。因此,我們需要使用參數"-force"。
ls -force <enter>
那麼新建立檔案呢?我們試試如下命令:
new-item newfile
此時要求輸入檔案類型,即"file"、"directory",我們使用"f"、"d"即可。
或者,在建立時使用參數:
PowerShell中的Function
PowerShell中提供了一個引擎,以供我們調用各種函數來實現功能。我們先看看內建函數:
cd function:
ls
接下來,用之前介紹過的cmdlet看看"clear-host"函數內容吧:
get-content clear-host
因此,我們可以為了方便,儘可能的建立一些代碼塊,實現特定功能,剩下要做的就只是調用了。是不是很方便呢?在後面的教程中我會詳細介紹自己編寫函數來實現功能調用。
註冊表
在PowerShell中我們可以像操作檔案一樣操作註冊表。PowerShell允許我們對HKCU與HKLM進行操作。
HKCU:HKEY_CURRENT_USER
HKLM:HKEY_LOCAL_MACHINE
試試下列命令:
cd hklm:
cd software
ls
認證
cd cert:
ls
匯出看看吧~
ls -Recurse | Export-CSV “d:\Cert.csv”
好了,這一節內容就到這裡~東西比較雜,也比較瑣碎,但是這些將大大加深我們對PowerShell的理解與認識,以協助我們以後更好的學習。
也到周末了,願各位周末快樂!感謝對本部落格的關注~謝謝!
new-item newfile -type f