2017-03-04 19 views
3

合計サイズを取得するために、Cドライブのプロパティ(空き領域と空き領域)を追加します。powershellでのプロパティの追加

Get-PSDrive C | Select-Object -Property Free,Used

は、これは私がカスタマイズされたプロパティを使用してGBでそれらを変換しますが一緒にこれらのプロパティを追加する方法がわからないことができる午前ドライブCの空きと使用容量を表示します。どんな助けもありがとう。ありがとう!

+0

私はGET-を含むドライブのプロパティを取得する方法についてそんなにオンラインコンテンツがあるか驚いていますWmiObjectを使用していますが、合計サイズを取得する方法に関する情報はありません。 –

+0

ようこそスタックオーバーフロー。あなたの質問に到達する視聴者を最大限にするための提案について[よくある質問を書くにはどうすればいいですか](https://stackoverflow.com/help/how-to-ask)を見てください。具体的には、あなたの実際の質問を含めるようにタイトルを改訂し、予想結果を含むように質問本体を改訂することをお勧めします。後者の場合はほとんどありますが、2つの値を表示したり、数値を表示したり、1つの値を表示したり、変数を保存したりするなど、それほど明確ではありません。 –

+0

@FissureKing:質問のどの部分が明確でないか分かりますか?彼は明らかに、彼は自由と空間をすでに利用しているので、それらを一緒に追加したいと言いました。 –

答えて

4
$computerHDDs= Get-WmiObject Win32_LogicalDisk -Filter "DeviceID='C:'" 

$logicalDisks = @() 
foreach($item in $computerHDDs) 
{ 
    $logicalDisk =[ordered]@{ 
    Name=$item.DeviceID -replace ':' ,''; 
    DiskSize = "{0:N2}" -f ($item.Size/1GB) + " GB" ; 
    } 
$logicalDisks +=$logicalDisk 
} 

$logicalDisks 

あなたは自由や使用を取得することができれば、その後、両方の合計は、全体の大きさに、あなたの場合は

を与える必要があり、あなたはこののように行うことができます:

$hdd= Get-PSDrive C | Select-Object -Property Free,Used 
$total= (($hdd.free + $hdd.Used)/1GB).ToString() + " GB" 
$total 

注:あなただけの値を取得したい場合は、TOSを削除tringメソッドとGBパート。最初の部分だけ

を使用して、すべてのドライブのために、あなたはこのように使用することができます:

Get-PSDrive -PSProvider filesystem | select Name, @{n= 'Used(GB)' ; e = {"{0:N2}" -f ($_.used/1GB)}}, @{n= 'Free (GB)' ; e = {"{0:N2}" -f ($_.Free/1GB)}}, @{n= 'Total(GB)' ; e = {"{0:N2}" -f (($_.used + $_.Free)/1GB)}} | Format-Table -AutoSize 
+0

-fは 'e {{{0:N2} '' -f($ _.used/1GB)}} ' –

+0

@JeffS .: Windows PowerShellで.NETを使用してFormatting Numbersを数値化する –

+0

[理解のヒント](https://technet.microsoft.com) /en-us/library/ee692795.aspx) –

4

PSDriveのあなたは、ハードドライブのパーティションの完全な情報が必要な場合は、代わりにボリュームコマンドレットを使用して作業するための最良の対象ではありません。

(Get-Volume -DriveLetter C).Size 

または

Get-Volume -DriveLetter C | Select-Object Size 

をA PSDriveの抽象化ですPowerShellでさまざまな種類のオブジェクトを同様の方法で扱うことができます。でもPSDriveの

+0

ありがとう!私がプロパティを追加しない場合は、これが最も簡単で最短の解決策であるため、これを正解として投票します。 –

0
#solution 1 with new column into select 
Get-Volume -DriveLetter C| 
select @{n= 'Used' ; e = {"{0:N2}" -f (($_.Size - $_.SizeRemaining)/1GB)}}, @{n= 'Free' ; e = {"{0:N2}" -f ($_.SizeRemaining/1GB)}}, @{n= 'Total' ; e = {"{0:N2}" -f ($_.Size/1GB)}} 

#solution 2 with foreach 
Get-Volume -DriveLetter C| foreach { 
[pscustomobject]@{ 
Used="{0:N2}" -f (($_.Size - $_.SizeRemaining)/1GB) 
Free="{0:N2}" -f ($_.SizeRemaining/1GB) 
Total="{0:N2}" -f ($_.Size/1GB) 
} 

} 
関連する問題