Powershell:在变量末尾附加百分号

时间:2017-10-18 09:16:46

标签: powershell string-concatenation

我正在尝试添加百分号("%")以附加到变量:

import process_words

word = "HELLO"
word_lower = process_words.word_to_lower(word)
print(word_lower)

但我得到的只是:

  

无法转换价值"%"输入" System.Double"。错误:"输入字符串   格式不正确。"

大概是因为它认为" +"运营商正在进行计算?我尝试过各种各样的联合选项,但似乎无法做到这一点。有人可以帮忙吗?

3 个答案:

答案 0 :(得分:2)

<强>解释

在输出周围添加" "以将其视为字符串,然后将变量附加到末尾。这意味着您可以将其从%切换为Percent Remaining等字符串。

希望这有帮助,你就近了!

<强>代码:

   $disk = Get-WmiObject -ComputerName $Computer -Class Win32_LogicalDisk -Filter  "Caption = 'D:'"       
              If (!($disk)) {
                 $DiskpercentFree = "n/a"
                }  
              Else {
                 $deviceID = $disk.DeviceID 
                 [float]$size = $disk.Size; 
                 [float]$freespace = $disk.FreeSpace;  
                 $diskpercentFree1 = [Math]::Round(($freespace / $size) * 100)
                 $Percent = '%' 
                 $diskpercentFree = "$diskpercentFree1" + $Percent
                 }

$diskpercentFree的示例结果:

  

PS C:\ Windows \ system32&gt; $ DiskpercentFree

     

57%

答案 1 :(得分:1)

有几种方法可以做到这一点:

将变量指定为字符串:

$diskpercentFree = "$diskpercentFree1$Percent"

将double值转换为字符串:

$diskpercentFree = "$diskpercentFree1" + $Percent
# Or
$diskpercentFree = [string]$diskpercentFree1 + $Percent

无需为%字符使用单独的变量:

$diskpercentFree = "$diskpercentFree1%"

答案 2 :(得分:0)

如果您想以百分比形式输出值,我建议使用字符串格式。例子:

PS C:\> "{0:P}" -f 1
100.00 %
PS C:\> "{0:P1}" -f .986
98.6 %
PS C:\> "{0:P0}" -f .75
75 %

-f的文档位于about_Operators page,并且有关于如何实现各种结果的.NET文档的链接。