4

次のように構成されたtxtファイルを読み取る必要があります。

      AA=1000,AA=320009#999999

      AA=1011,AA=320303#111111

読み取った行ごとに、最初のターンに到達するために「#」で分割する必要があります

 $test[0] = AA=1000,AA=320009 and $test[1]=999999

そして2ターン目に

 $test[0] = AA=1000,AA=320003   $test[1]= 1111111

get-content の使用方法や取得方法を理解するのにいくつか問題があります。

4

3 に答える 3

7
# 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]
}

つまり、$tests の各行 ($_ によって実体化される各行は、「#」で分割されます (これにより、Write-Host ステートメントで使用される配列が生成されます)。

于 2013-09-04T14:37:07.003 に答える
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
于 2013-09-04T17:12:00.470 に答える