首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在哈希表末尾添加键值对?

如何在哈希表末尾添加键值对?
EN

Stack Overflow用户
提问于 2012-08-08 18:15:28
回答 4查看 10.6K关注 0票数 1

我正在尝试使用PowerShell脚本计算代码计数。

我在互联网上找到了一个脚本,并试图在末尾添加总行。

我已经添加了该列

代码语言:javascript
复制
$CountHash.Add("Total", $Total)

在最后。

代码语言:javascript
复制
Param( [string]$path,
       [string]$outputFile,
       [string]$include = "*.*",
       [string]$exclude = "")

Clear-Host

$Files = Get-ChildItem -re -in $include -ex $exclude $path
$CountHash = @{}
$Total=0
Foreach ($File in $Files) {
    #Write-Host "Counting $File.FullName"
    $fileStats = Get-Content $File.FullName | Measure-Object -line
    $linesInFile = $fileStats.Lines
    $CountHash.Add($File.FullName, $linesInFile)

    $Total += $linesInFile
}

$CountHash.Add("Total", $Total)
$CountHash

但是当我显示$CountHash时,它在中间显示“总计”键。在结尾处添加Add并不能确保在结尾处添加。

如何在哈希表的末尾添加键/值对?

我将这个哈希表导出为CSV文件,但是总的行数在中间。

EN

回答 4

Stack Overflow用户

发布于 2012-08-08 18:20:46

假设总数只是为了显示,我想没有必要将其添加到哈希集。删除行

代码语言:javascript
复制
$CountHash.Add("Total", $Total)

并添加以下内容作为最后一行:

代码语言:javascript
复制
Write-Host "Total: $Total"
票数 3
EN

Stack Overflow用户

发布于 2012-08-08 19:14:36

要回答您的问题,您可以使用Add方法as Kenned did或通过指定创建一个新密钥来完成此操作:

代码语言:javascript
复制
$CountHash.Total = $Total

但是,我会采用一种更简单的方法,定制对象而不是哈希表:

代码语言:javascript
复制
Get-ChildItem -Path $path -Include $include -Exclude $exclude -Recurse |
Select-Object FullName, @{Name='LineCount';Expression={ (Get-Content $_.FullName | Measure-Object -Line).Lines}} |
Export-Csv .\files.csv
票数 1
EN

Stack Overflow用户

发布于 2012-08-08 22:12:58

我会这样做:

代码语言:javascript
复制
$CountHash += @{Total = $total}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11862361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档