4

1 つの Foreach または Foreach-Object ループで複数のコマンドを使用するのが難しい

私の状況は -

  1. 約100のテキストファイルがたくさんあるので、それらは読み取られますGet-ChildItem $FilePath -Include *.txt
  2. すべてのファイルの構造は同じで、キー情報のみが異なります。例

    ユーザー: Somerandomname

    コンピューター: Somerandomcomputer

コマンドを使用-Replaceして、「ユーザー:」と「コンピューター:」を削除$User = Somerandomname$computer = "Somerandomcomputerます。各サークルで、$user と $Computer を -Append と共に 1 つのファイルに書き込む必要があります。そして、次のファイルを読み込む必要があります。

foreach-object { $file = $_.fullname;

を使用する必要がありますが、正しい構文がわかりません。誰かが私を助けてくれますか?

4

3 に答える 3

0

Userとが別々の行にある場合Computerは、一度に 2 行ずつ読む必要があります。のReadCountパラメーターをGet-Content使用すると、それが可能になります。

Get-ChildItem $FilePath -Include *.txt `
| Get-Content -ReadCount 2 `
| %{ $user = $_[0] -replace '^User: ', ''; $computer = $_[1] -replace '^Computer: ', ''; "$user $computer" } `
| Out-File outputfile.txt

これにより、すべてのファイルに正確な形式の行のみが含まれていると仮定されます

User: someuser
Computer: somecomputer
User: someotheruser
Computer: someothercomputer
...

そうでない場合は、正確なファイル形式を指定する必要があります。

于 2013-08-14T14:58:10.000 に答える