gpt4 book ai didi

arrays - 在 Powershell 中输出数组的哈希表

转载 作者:行者123 更新时间:2023-12-04 11:15:13 25 4
gpt4 key购买 nike

我没办法。我是 powershell 的新手,我已经尝试了我可以在网上找到的关于这个主题的所有内容。我想要做的是将数组的哈希表打印到文件中,而不会在每个数组值的末尾出现愚蠢的省略号。下面是我最好的尝试。

# Update output buffer size to prevent clipping in output window.
if( $Host -and $Host.UI -and $Host.UI.RawUI )
{
$rawUI = $Host.UI.RawUI
$oldSize = $rawUI.BufferSize
$typeName = $oldSize.GetType( ).FullName
$newSize = New-Object $typeName (1000, $oldSize.Height)
$rawUI.BufferSize = $newSize
}

# Suposedly to allow enumeration in formatting to be unlimited
$formatenumerationlimit = -1

$Dir = get-childitem c:\SomeFolderWithFiles -recurse
$List = $Dir | where {$_.extension -eq ".hash"} | where-object {$_ -ne $null}
$lookupTable = @{}
Foreach ($element in $List)
{
#Get the type of file from filename
$PSV_Type = $element.Name.Substring(0, $element.Name.indexOf("."))
#Get the date sent from filename
$Date_Sent = $element.Name.Substring($element.Name.length - 20,8)

#Populate hashTable
.....
}
$columns = @{Expression={$_.Name};Label="Date_Sent";width=12}, @{Expression={$_.Value};Label="PSV_Types";width=1000}
$lookupTable.GetEnumerator() | Sort-Object Name | Format-Table $columns | out-file C:\hashFiles.txt -width 1012

现在毕竟这一切,我仍然得到这个结果:

Date_Sent PSV_Types
--------- ---------
20091201 {31, ALLOCATIONS, AUDIT_TRAIL, BOOKS...}
20091202 {31, ALLOCATIONS, AUDIT_TRAIL, BOOKS...}
20091203 {31, ALLOCATIONS, AUDIT_TRAIL, BOOKS...}
20091204 {31, ALLOCATIONS, AUDIT_TRAIL, BOOKS...}
20091207 {31, ALLOCATIONS, AUDIT_TRAIL, BOOKS...}
20091208 {31, ALLOCATIONS, AUDIT_TRAIL, BOOKS...}
20091209 {31, ALLOCATIONS, AUDIT_TRAIL, BOOKS...}
20091210 {31, ALLOCATIONS, AUDIT_TRAIL, BOOKS...}
20091211 {31, ALLOCATIONS, AUDIT_TRAIL, BOOKS...}
20091214 {31, ALLOCATIONS, AUDIT_TRAIL, BOOKS...}
20091215 {31, ALLOCATIONS, AUDIT_TRAIL, BOOKS...}



有人在 powershell 方面更聪明,请告诉我我错过了什么。最后怎么去掉这些血腥的省略号,只写数组的所有成员,不管有多少?我是否必须通过构建一个大字符串缓冲区并将其输出到文件来推出一些 ghetto 解决方案,还是有更好的方法来做到这一点?

谢谢。

最佳答案

由于这个原因,您不应该使用 Out-File,它通过默认的格式化引擎运行。您要使用的是像这样的 Set-Content/Add-Content。

$lookupTable.GetEnumerator() | Sort-Object Name |
ForEach-Object {"{0}`t{1}" -f $_.Name,($_.Value -join ",")} |
Add-Content C:\hashFiles.txt

关于arrays - 在 Powershell 中输出数组的哈希表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5494201/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com