如何在 powershell 中解析由 format-table 生成的 table 单元格中的字符串?
How to parse strings in a table cell generated by format-table in powershell?
我使用以下 comlet 获取数据:
import-csv .\ConnectionStrings.txt -Delimiter "`t" -Header Firms, URLs, Config, Type | format-table -Property Firms, URLs -HideTableHeaders -outvariable content
#Not working part
for($i = 0; $i -lt $content.Count; $i++){
$url = $content[$i][1]
$instance = $url.SubString(0, $url.IndexOf(".") - 1)
}
下面是 import-csv...cmdlet 的结果:
value1 url1.test.com
value2 url2.test.com
value3 urle3.test.com
...
valuen urln.test.com
我使用 getType 来检查 $content,它是 ArrayList。我想我可以将它用作 C# ArrayList,因为我需要解析第二列以获取 url 部分。
但没有工作。目前我认为我已经走到了死胡同,不知道我可以去哪里...
format-table
用于将对象显示为文本 table。但是您想访问 import-csv
给您的对象的内部结构。所以你不想 format-table
.
$content
是 import-csv
构建的对象的 ArrayList,而不是 ArrayList 或数组的 ArrayList。您已经使用 -Header
选项告诉 import-csv
要构建什么样的对象,所以只需使用它即可。
- SubString 采用起始索引和长度,而不是起始索引和结束索引。
进行相关更改后,我得到以下代码:
$content = import-csv .\ConnectionStrings.txt -Delimiter "`t" -Header Firms, URLs, Config, Type
for($i = 0; $i -lt $content.Count; $i++){
$url = $content[$i].URLs
$instance = $url.SubString(0, $url.IndexOf("."))
Write-Host $instance
}
这给出了这个输出:
url1
url2
urle3
urln
我想这就是你要找的。
我使用以下 comlet 获取数据:
import-csv .\ConnectionStrings.txt -Delimiter "`t" -Header Firms, URLs, Config, Type | format-table -Property Firms, URLs -HideTableHeaders -outvariable content
#Not working part
for($i = 0; $i -lt $content.Count; $i++){
$url = $content[$i][1]
$instance = $url.SubString(0, $url.IndexOf(".") - 1)
}
下面是 import-csv...cmdlet 的结果:
value1 url1.test.com
value2 url2.test.com
value3 urle3.test.com
...
valuen urln.test.com
我使用 getType 来检查 $content,它是 ArrayList。我想我可以将它用作 C# ArrayList,因为我需要解析第二列以获取 url 部分。 但没有工作。目前我认为我已经走到了死胡同,不知道我可以去哪里...
format-table
用于将对象显示为文本 table。但是您想访问import-csv
给您的对象的内部结构。所以你不想format-table
.$content
是import-csv
构建的对象的 ArrayList,而不是 ArrayList 或数组的 ArrayList。您已经使用-Header
选项告诉import-csv
要构建什么样的对象,所以只需使用它即可。- SubString 采用起始索引和长度,而不是起始索引和结束索引。
进行相关更改后,我得到以下代码:
$content = import-csv .\ConnectionStrings.txt -Delimiter "`t" -Header Firms, URLs, Config, Type
for($i = 0; $i -lt $content.Count; $i++){
$url = $content[$i].URLs
$instance = $url.SubString(0, $url.IndexOf("."))
Write-Host $instance
}
这给出了这个输出:
url1
url2
urle3
urln
我想这就是你要找的。