私はこの後続のクエリループを作成し、現在のディレクトリ内のすべてのテキストファイルを分割しようとしています。私は現在、TestingInfo[1]
& TestingInfo[2]
という名前の2つの異なるファイルを持っています。ファイルが置かれtxt分割ファイルのループ
ディレクトリ:\\C\users$\Pepe\Desktop\TestInfoFolder
ファイルは次のようになります。
TestingInfo[1]
:
[IMPORT] 1 2 3 [IMPORT] 4 5 6
TestingInfo[2]
:
[IMPORT] 7 8 9 10
コード私がこれまで持っている:
$Path = "\\C\users$\Pepe\Desktop\TestInfoFolder"
$InputFile = (Join-Path $Path "TestingInfo[1].txt")
$Reader = New-Object System.IO.StreamReader($InputFile)
$N = 1
While (($Line = $Reader.ReadLine()) -ne $null) {
if ($Line -match "[IMPORT]") {
$OutputFile = $matches[0] + $N + ".txt"
$N++
}
Add-Content (Join-Path $Path $OutputFile) $Line
}
ここにはいくつかのことがあります。あなたは、あなたが達成しようとしていることをうまく説明していません。 3つの出力ファイルが必要ですか?あなたはそれらに何が含まれると思いますか?名前はどうしたらいいですか?また、 '' [IMPORT] ''はあなたの '-match'引数の正規表現には適していません。これは、I、M、P、O、R、またはTの文字のうちの少なくとも1つを含む行に一致します([ここの例を参照](https://regex101.com/r/kV3wZ7/1)) – TheMadTechnician
ここでは、「Select-String - 1つの移動内のすべてのインポートグループを選択するための 'IMPORT'の間に、存在する場合はきちんとしてください。あなたもそれがきちんとしていると思うなら、それに投票してください:https://windowsserver.uservoice.com/forums/301869-powershell/suggestions/14951235-add-parameters-to-select-string-for-matching-all-l – TessellatingHeckler
私が説明しようとしたのは、上記のtxtを含む2つのファイルがあるということです。最初のファイルTestingInfo [1]には、別々のファイルに抽出する必要のある2セットのレコードと、2つ目のファイルテストがあります。TestingInfo [2]には1つあります。ディレクトリ内のファイルの数に関係なく、これらのブロックのそれぞれを分離する機能が欲しいです。名前が何であるかは関係ありません。 "TestingInfo [1] _N"のようなもの(Nはファイルから来たブロック数に等しい)。 –