我很新的PowerShell和我跑到牆壁試圖將字符串轉換爲整數。如何在Windows Powershell中轉換數據類型?
如果我運行以下命令:Get-DefaultAudioDeviceVolume它通常會返回一個類似於:50.05816%的數字,我已經確認這是一個字符串。我需要將其轉換爲整數整數(50)。很顯然,我可以在腳本中對整數進行硬編碼,但爲了腳本的目的,我需要在轉換中靈活。前面的測試結果發生了變化,我希望將整個整數傳遞給下一行。
在此先感謝!
我很新的PowerShell和我跑到牆壁試圖將字符串轉換爲整數。如何在Windows Powershell中轉換數據類型?
如果我運行以下命令:Get-DefaultAudioDeviceVolume它通常會返回一個類似於:50.05816%的數字,我已經確認這是一個字符串。我需要將其轉換爲整數整數(50)。很顯然,我可以在腳本中對整數進行硬編碼,但爲了腳本的目的,我需要在轉換中靈活。前面的測試結果發生了變化,我希望將整個整數傳遞給下一行。
在此先感謝!
只投它爲整數,並沒有取代「%」:
[int]$var = (Get-DefaultAudioDeviceVolume).Replace("%","")
PowerShell將自動型鑄造,從左邊開始。所以當$ var被定義爲一個整數時,它會嘗試將右側轉換爲相同的類型。
如果字符串包含%符號,你將需要刪除這一點,那麼你可以使用-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
它確實是用「%」返回結果。當我嘗試運行腳本時,建議我收到以下錯誤: 無法將值「50.05816%」轉換爲鍵入「System.Int32」。錯誤:「輸入字符串格式不正確。」 –
修正了答案。 James C.的工作也應該如此。 – whatever