2017-10-18 22 views
0

내가 변수에 추가 할 퍼센트 기호 ("%")를 추가하려고 끝에 퍼센트 기호를 추가 :파워 쉘 : 변수

$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 
} 

을하지만 내가 가진 전부입니다

Cannot convert value "%" to type "System.Double". Error: "Input string was not in a correct format."

아마도 "+"연산자가 계산을한다고 생각하기 때문에? 여러 가지 concat 옵션을 시도했지만 올바르게 할 수없는 것 같습니다. 누구든지 도와 줄 수 있습니까?

답변

0

설명 :

문자열로 처리 한 후 마지막에 변수를 추가하여 출력 주위 " " 추가. 즉, %에서 Percent Remaining과 같은 문자열로 전환 할 수 있습니다.

호프가 도움이 되었으면 좋겠다.

코드 : $diskpercentFree

$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 
       } 

예 결과 : 당신은 출력 백분율로 값을 원하는 경우

PS C:\Windows\system32> $DiskpercentFree

57%

+1

$ diskpercentFree = [String] $ diskpercentFree1 + "$ Percent"를 선택했습니다. 실제로 변수를 변환하려고했습니다 : "[String] $ diskpercentFree". 매우 감사합니다! – JDGEEK

+0

@JDGEEK 그러면 기술적으로 그 대답을 받아 들여야합니다. – arco444

1

이 할 수있는 몇 가지 방법이 있습니다 :

문자열로

지정 변수 :

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

그리고를 사용할 필요가 없습니다 :

$diskpercentFree = "$diskpercentFree1$Percent" 

캐스트 문자열로 double 값 % 문자에 대한 별도 변수 :

$diskpercentFree = "$diskpercentFree1%" 
(210)
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의 문서에이 링크가있다.