我需要读取如下组成的txt文件:
AA=1000,AA=320009#999999
AA=1011,AA=320303#111111
对于每个引线,我需要用“#”分割它以获得第一个转弯
$test[0] = AA=1000,AA=320009 and $test[1]=999999
并在第二个回合
$test[0] = AA=1000,AA=320003 $test[1]= 1111111
我有一些问题需要了解如何使用get-content或获取它。
答案 0 :(得分:6)
# Basically, Get-Content will return you an array of strings such as below:
# $tests = Get-Content "c:\myfile\path\mytests.txt"
$tests = @(
"AA=1000,AA=320009#999999",
"AA=1011,AA=320303#111111"
)
$tests | %{ $test = $_ -split '#'; Write-Host $test[0]; Write-Host $test[1] }
以上一行相当于:
$tests | foreach {
$test = $_ -split '#'
Write-Host $test[0]
Write-Host $test[1]
}
意味着对于$ lines的每一行(每行由$ _实现,一个在'#'上进行拆分(它产生一个在Write-Host语句中使用的数组)
答案 1 :(得分:3)
如果文本文件中的所有行都具有相同的结构,则可以直接在-split
的结果上使用Get-Content
运算符:
(Get-Content 'C:\path\to\your.txt') -split '#'
结果是一个数组,其中偶数索引(0,2,4,...)包含一行的第一部分,奇数索引(1,3,5,...)包含一行的最后部分。
示例:
PS C:\> Get-Content .\test.txt
AA=1000,AA=320009#999999
AA=1011,AA=320303#111111
PS C:\> $test = (Get-Content .\test.txt) -split '#'
PS C:\> $test[0]
AA=1000,AA=320009
PS C:\> $test[3]
111111
答案 2 :(得分:2)
其他解决方案:
Get-Content "c:\temp\test.txt" | ConvertFrom-String -Delimiter "#" -PropertyNames Part1, Part2