У меня нет навыков программирования, но очень специфическая задача: мне нужно разбить один массивный текстовый файл на многие, разделив их на определенный текстовый указатель (@) , Я решил попробовать сценарий Powershell для этого.Powershell: создать несколько .txt из одного .txt с именами файлов из строки
До сих пор, вот что я придумал:
InputFile = "c:\test.txt"
$Reader = New-Object System.IO.StreamReader($InputFile)
$a = 1
While (($Line = $Reader.ReadLine()) -ne $null) {
If ($Line -match "@") {
$OutputFile = "c:\splittedfile$a.txt"
$a++
}
Add-Content $OutputFile $Line
}
Теперь, что я хочу достичь, это не просто базовые имена файлов на петле. Вместо этого вторая строка каждого нового файла будет действовать как имя файла, и я не знаю, как это сделать.
Редактировать @Jason Boyd: Определение структуры файла, основанный на комментарии Джейсона: Это в основном большой шаблон для вики, поэтому в результате TextFiles должен иметь конкретные имена (в первом примере «буэнос aires_audiencia_rpl ». количество строк не является постоянным, так как„Comentario“могут быть предварительно заполнены и имеют разрывы строк
@
buenos aires_audiencia_rpl
======= Buenos Aires, Audiencia (RPL) =======
^Variantes | |
===== Comentario =====
==== Geografía ====
==== Historia institucional ====
==== Población y economía ====
==== Iglesia ====
==== Bibliografia ====
==== Citas textuales ====
@
caracas_audiencia_ven
можете ли вы описать ваш текст немного больше? Или майб e включите небольшую выборку файла в свой вопрос. Есть один '@' на строку. Я не уверен, что вы имеете в виду, когда говорите, что вторая строка должна действовать как имя файла. Вы имеете в виду текст после того, как '@' должен быть именем файла? Если это так, когда заканчивается имя файла и начинается текст для следующего файла? –