У меня есть несколько текстовых файлов в директории хотите объединить все файлы в один и создать новый единый текстовый файл, сохраненный в столеобъединить несколько текстовых файлов и создать новый текстовый файл powershell?
ответ
Ok после работы с вами в комментариях здесь является решение, которое будет генерировать комбинированный файл с пустой строкой, разделяющей содержимое каждого файла, если вы предпочтете, чтобы вы могли включать любой символ, который вы хотите в пределах "" в цикле foreach-object.
Get-ChildItem d:\scripts -include *.txt -rec | ForEach-Object {gc $_; ""} | out-file d:\scripts\test.txt
и FTR нет необходимости беспокоиться о вводе файла, который вы создаете в том же каталоге, что вы сканирования, оно создается после того, как Get-ChildItem побежал в трубопроводе и так будет не создают проблем (Altho его содержимое будет включено в последующих запусках вашего скрипта, если вы не удалите его)
Спасибо, это может быть включено в подкаталог или только основной каталог любым способом, чтобы включить все из master и sub directory – user7026863
Этот код использует переключатель '-recurse', чтобы он собирал текстовые файлы из каталога и всех подкаталогов под ним, если вы отбрасываете' -recurse', он будет собирать только текстовые файлы с первого уровня каталог. –
Большая помощь Майк .. Спасибо за последний вопрос .. Вместо Get-ChildItem, даже если мы напрямую укажем каталог, он не будет влиять ни на что. – user7026863
$ каталог = «C: \ TMP»
$ resultFile = $ env: USERPROFILE + "\ Desktop \ result.txt"
Get-ChildItem -Path $ directory -Include * .txt -Recurse | Получить контент | Out-File -FilePath $ resultFile -NoClobber
Не поместить результат в том же каталоге, что и текстовые файлы, или вы получите плохие результаты :)
как насчет разделителя для каждого нового текстового файла, объединенного – user7026863
попробовать это:
$yourdir="c:\temp\"
gci $yourdir -File -Filter *.txt | gc | out-file -FilePath ([Environment]::GetFolderPath("Desktop") + "\totalresult.txt")
если вы хотите добавить имя файла для заголовка вы можете сделать это
Предположим, что мои текстовые имена файлов - это a.txt b.txt c.txt d.txt при слиянии всех в e.txt, я могу получить динамический разделитель, который сам является именем текстового файла .. ex: a.text-content b.text -content c.text -content. Для каждого разделителя im lokking, чтобы иметь имя самого текстового файла, надеюсь, что я понял мой запрос – user7026863
Я изменил свой код;) – Esperento57
Большое спасибо :) – user7026863
Существует несколько различных способов сделать это с помощью PowerShell, но было бы полезно, если бы вы могли сообщить нам, что вы уже пробовали, и с какими проблемами вы столкнулись, тогда мы можем помочь вам в работе с этими и объясните, как справляться с подобными проблемами в будущем, а не просто писать код для вас. –
dir C: \ folder \ * -ключить * .txt -rec | gc | out-file C: \ result.txt .. – user7026863
@MikeGaruccio все текстовые файлы находятся в пути dfs внутри каталога. Я хочу объединить все эти и сохранить результат на моем рабочем столе – user7026863