您好,登錄后才能下訂單哦!
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'}
今天就說到這了,要想了解更多,且聽下回分解,散會!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。