【发布时间】:2016-05-10 00:29:08
【问题描述】:
我在一个文件中有这个内容:
File Versions
---- --------
aaa {1.0.0.123, 1.0.0.124}
bbb {1.0.0.123, 1.0.0.124}
如何在powershell中将其读入表格或类型数组?
我已经通过这个脚本创建了文件:
$versions = $dictionary | ForEach-Object{
$properties = @{
File = $dictionary.Key
Versions = $dictionary.Value <# an array of strings #>
}
New-Object PSObject -Property $properties
}
$versions | Out-File "filesVersions.txt"
该脚本不再使用。这只是为了演示filesVersions.txt 文件中的内容。
我真正想要的是在文件中存储一个键值对,其中键是文件名,值是版本列表。
有时我需要读取文件内容、所有新行或现有行的新版本并将其保存回来。
我想为它使用Format-Table 输出。
【问题讨论】:
-
看起来您已将
Format-Table输出保存到文件中。您是否可以控制该输出。解决这个问题会更容易,然后现在解析它。或者它实际上是一个 CSV 文件,你可以使用Import-CSV "filesVersions.csv"。或者这是一个大文件,这就是你使用ReadAllLines的原因? -
什么是
$versions? -
查看我的编辑并提供更多解释。什么是 filesVersions.csv 或 $dictionary 并不重要,因为它不再存在。这只是我的测试数据,我将其保存到一个文件中,我想将其读回。
-
@Liero 你不能(可靠地)这样做 - 你将如何确定
{1.0.0.123, 1.0.0.124}是代表一个数组(什么?可能是版本、IP 地址)还是字符串文字"{1.0.0.123, 1.0.0.124}"?正如@Matt 所说,首先导出为另一种格式是您在现实世界中解决此问题的方法(例如Export-CliXml或Export-Csv,而不是格式化输出到Out-File)。
标签: powershell