2016-11-23 14 views
2

我很新的PowerShell和我跑到牆壁試圖將字符串轉換爲整數。如何在Windows Powershell中轉換數據類型?

如果我運行以下命令:Get-DefaultAudioDeviceVolume它通常會返回一個類似於:50.05816%的數字,我已經確認這是一個字符串。我需要將其轉換爲整數整數(50)。很顯然,我可以在腳本中對整數進行硬編碼,但爲了腳本的目的,我需要在轉換中靈活。前面的測試結果發生了變化,我希望將整個整數傳遞給下一行。

在此先感謝!

回答

2

只投它爲整數,並沒有取代「%」:

[int]$var = (Get-DefaultAudioDeviceVolume).Replace("%","") 

PowerShell將自動型鑄造,從左邊開始。所以當$ var被定義爲一個整數時,它會嘗試將右側轉換爲相同的類型。

+0

它確實是用「%」返回結果。當我嘗試運行腳本時,建議我收到以下錯誤: 無法將值「50.05816%」轉換爲鍵入「System.Int32」。錯誤:「輸入字符串格式不正確。」 –

+1

修正了答案。 James C.的工作也應該如此。 – whatever

2

如果字符串包含%符號,你將需要刪除這一點,那麼你可以使用-as運營商轉換到[int]

[string]$vol = "50.05816%" 

$vol_int = $vol.Replace('%','') -as [int] 

-as運營商是非常有用的,有許多其他用途,這篇文章經歷了其中的一些:https://mcpmag.com/articles/2013/08/13/utilizing-the-as-operator.aspx