Ich versuche, diese folgende Abfrage Schleife durchlaufen und alle Textdateien im aktuellen Verzeichnis aufgeteilt. Ich habe derzeit zwei verschiedene Dateien namens TestingInfo[1]
& TestingInfo[2]
.Schleife für txt geteilte Datei
Verzeichnis, in dem Dateien gespeichert sind: \\C\users$\Pepe\Desktop\TestInfoFolder
Die Dateien wie folgt aussehen:
TestingInfo[1]
:
[IMPORT] 1 2 3 [IMPORT] 4 5 6
TestingInfo[2]
:
[IMPORT] 7 8 9 10
-Code Ich habe bisher:
$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
}
Es gibt ein paar Dinge, die ich hier sehe. Sie erklären nicht gut, was Sie zu erreichen hoffen. Möchten Sie 3 Ausgabedateien? Was erwarten Sie von ihnen? Wie sollen sie benannt werden? Außerdem ist "[IMPORT]" 'keine gute Regex-Übereinstimmung für Ihr' -Match'-Argument. Das passt zu jeder Zeile, die mindestens eines der Zeichen I, M, P, O, R oder T enthält. ([Beispiel hier] (https://regex101.com/r/kV3wZ7/1)) – TheMadTechnician
An Beispiel wo 'Select-String -Between 'IMPORT', um alle Importgruppen in einem Zug auszuwählen, ordentlich ist, wenn es existiert. Stimmen Sie dafür, wenn Sie auch denken, dass es ordentlich wäre: https://windowsserver.uservoice.com/forums/301869-powershell/suggestions/14951235-add-parameters-to-select-string-for-matching-all-l – TessellatingHeckler
Was ich zu erklären versuchte, ist, dass ich zwei Dateien habe, die den oben angegebenen Text enthalten. Die erste Datei, TestingInfo [1], enthält zwei Sätze von Datensätzen, die ich in separate Dateien extrahieren muss, und der zweite Dateitest, TestingInfo [2], hat einen. Ich möchte die Funktion, um jeden dieser Blöcke unabhängig davon zu trennen, wie viele Dateien in dem Verzeichnis sind. Es ist egal, wie sie benannt sind. Etwas wie "TestingInfo [1] _N", wobei N der Anzahl der Blöcke entspricht, die aus der Datei stammen. –