1. 程式人生 > >Powershell實用命令(1)

Powershell實用命令(1)

資料 ssi 代碼 shel 表達 英文 express select cat

Powershell已經成了windows運維人員不得不掌握的技能了,他的強大只有使用過了才能體會,閑話不多說,在這裏記錄一下Powershell的實用命令,幫助在Powershell中一起奮鬥的童鞋們

將輸出的結果轉變成自己想要的對象類型,例如,我有一個小數,但是我只想要他的整數位,這裏我們可以用-as操作符,在as後面接你想轉換的類型可以是[int],[string]等

1.23 -as [int]

這條命令就是將1.23這個小數轉換成整型值,所以最後我們得到的結果就是1,這個功能經常用於一些磁盤空間的或者數據方面的轉換,需要註意的是,這個轉換時使用的四舍五入的機制,就是說,如果小數值是大於等於0.5的會在整數位加1

當然我們不用as操作符,更簡單的方式就是直接在值或變量前面加類型例如[int]1.23,這樣輸出的值也是一

取整這個還有幾種方法,這裏也介紹一下,有時候我們可能需要把小數位直接算成整數,或者小數位直接舍去,那麽遇到這種情況我們可以通過[math]::Floor()和[math]::Ceiling()來執行,例如:

PS C:\Windows\system32> $a=2.33

PS C:\Windows\system32> [math]::Ceiling($a)
3
PS C:\Windows\system32> [math]::Floor($a)
2

通過上面的代碼,我們可以看到,ceiling函數是向上取整,就是小數位統統往整數上加1,floor函數是向下取整,小數位統統忽略,甭管你是不是大於0.5

和前面提到的[int]直接轉整數的,還有一種方式,就是[convert]::Toint32($a),也可以得到四舍五入的取整結果,當然Toint32的功能不僅僅是簡單的轉換小數,他還可以用於轉換2進制,10進制,16進制等等,例如

PS C:\Windows\system32> $a = [convert]::ToString(188,2)

PS C:\Windows\system32> [convert]::ToInt32($a)
10111100

PS C:\Windows\system32> [convert]::ToInt32($a,2)
188

PS C:\Windows\system32> [convert]::ToInt32($a,8)
2134592

PS C:\Windows\system32> [convert]::ToInt32($a,16)
269553920

PS C:\Windows\system32> [convert]::ToInt32($a,10)
10111100

首先我把188轉成2進制形式賦值給a變量(聽清楚是形式,它實際上是一個字符串值,要確認可以直接用$a.gettype()去看下他的類型),然後測試直接轉成整型,接著轉2進制,8進制,16進制和10進制,嗯,看起來沒毛病,對吧,老鐵。

好,我們接著下一個比較實用的命令,通過哈希表達式來轉換輸入的格式
我想平時寫腳本導出資料的時候,你應該會遇到導出的結果的欄位名稱你覺得不滿意,想改成自己想要的名字,甭管為啥,就是想改,有句話怎麽說來著,我就是喜歡你看我不慣又拿我沒轍的樣子,就是這麽任性。
OK,小case,哈希表達式幫您忙,舉個簡單的例子,我想把輸入的欄位英文改成我要的中文,看代碼:

PS C:\Windows\system32> Get-Process | select name -First 3

Name                
----                
AcroRd32            
AcroRd32            
ApplicationFrameHost

我們用get-process抓3條進程名字,可以發現名字欄位是Name,作為一個愛國的五好青年,我得把這個Name改成中文,看我代碼大法

PS C:\Windows\system32> Get-Process | select @{name=‘名稱‘;expression={$_.Name}} -First 3

名稱                  
--                  
AcroRd32            
AcroRd32            
ApplicationFrameHost

看見沒,Name沒有了,我中華漢字取而代之,name和expression可以縮寫成n和e @{n=‘想要的名稱‘;e={可以是一個代碼輸出的值,也可以是值}}

延伸一下,我們知道平時我們使用ft或者fl這樣的輸出格式命令的時候是沒有指定輸出值的對齊功能的,Powershell會默認去對齊,但是這樣會發現有的是左對齊,有的是右對齊,還能不能好好玩耍了,非要整2個對齊方式幹嘛,我只需要一種對齊方式,我們可以通過哈希表達式來解決,只需要在表達式中加入align=‘left‘或者‘right‘,就可以讓數據左對齊,或者右對齊了,例如@{n=‘名稱‘;e={$_.name};align=‘left‘}

今天就說到這了,要想了解更多,且聽下回分解,散會!

Powershell實用命令(1)