我想使用get-counter“ \\ $ env:COMPUTERNAME \ memory \%已使用的已提交字节数”将其添加到下一行的csv中

时间:2018-12-22 13:07:38

标签: powershell csv append

如何在不覆盖当前数据的情况下将get-count追加到csv的单元格中。

$path = "v:\logg\logg.csv"
$ram = Get-Counter "\\$env:COMPUTERNAME\minne\% använda dedikerade byte"
$drivers = Get-Volume |Where-Object {$_.DriveLetter-ne $null}| select DriveLetter,Size,SizeRemaining,@{e={$_.Size - $_.SizeRemaining};l="Used"},@{e={[math]::Round(100 / ($_.size / $_.SizeRemaining) )};l="Total %"} 
$drivers | Export-Csv $path -NoTypeInformation -Append -Force
Get-Date -Format "yyyy-MM-dd HH:mm"|Out-File $path -Append

我希望它看起来像这样,但是将get-count添加到下一个空单元格中:

enter image description here

如果我尝试添加具有添加内容或外文件的$ ram,它将覆盖整个文件并删除$ drivers

如果我尝试这样做:

$path = "v:\logg\hej.csv"
$ram = Get-Counter "\\$env:COMPUTERNAME\minne\% använda dedikerade byte"
$ram |Export-Csv $path -NoTypeInformation -Append -Force

$drivers = Get-Volume |Where-Object {$_.DriveLetter-ne $null}| select DriveLetter,Size,SizeRemaining,@{e={$_.Size - $_.SizeRemaining};l="Used"},@{e={[math]::Round(100 / ($_.size / $_.SizeRemaining) )};l="Total %"} 
$drivers | Export-Csv $path -NoTypeInformation -Append -Force

It will look like this, overwriting the whole part of $drivers

1 个答案:

答案 0 :(得分:0)

对于仅已提交的字节%,您可以使用此...

$Counter = '\\{0}{1}' -f $env:COMPUTERNAME, '\Memory\% Committed Bytes in Use'
$RAM_CommBytesInUse_Pct = [int](get-counter -Counter $Counter).
    CounterSamples[0].
    CookedValue

我系统上的输出= 39

但是, 添加所有不具有相同列的内容时,您不是在制作CSV文件 。例如,您插入的日期是DriveLetter列中的字符串。要制作真实的CSV文件,您需要在新对象中重新排列属性。