-2

У меня есть несколько текстовых файлов в директории хотите объединить все файлы в один и создать новый единый текстовый файл, сохраненный в столеобъединить несколько текстовых файлов и создать новый текстовый файл powershell?

+0

Существует несколько различных способов сделать это с помощью PowerShell, но было бы полезно, если бы вы могли сообщить нам, что вы уже пробовали, и с какими проблемами вы столкнулись, тогда мы можем помочь вам в работе с этими и объясните, как справляться с подобными проблемами в будущем, а не просто писать код для вас. –

+0

dir C: \ folder \ * -ключить * .txt -rec | gc | out-file C: \ result.txt .. – user7026863

+0

@MikeGaruccio все текстовые файлы находятся в пути dfs внутри каталога. Я хочу объединить все эти и сохранить результат на моем рабочем столе – user7026863

ответ

2

Ok после работы с вами в комментариях здесь является решение, которое будет генерировать комбинированный файл с пустой строкой, разделяющей содержимое каждого файла, если вы предпочтете, чтобы вы могли включать любой символ, который вы хотите в пределах "" в цикле foreach-object.

Get-ChildItem d:\scripts -include *.txt -rec | ForEach-Object {gc $_; ""} | out-file d:\scripts\test.txt

и FTR нет необходимости беспокоиться о вводе файла, который вы создаете в том же каталоге, что вы сканирования, оно создается после того, как Get-ChildItem побежал в трубопроводе и так будет не создают проблем (Altho его содержимое будет включено в последующих запусках вашего скрипта, если вы не удалите его)

+0

Спасибо, это может быть включено в подкаталог или только основной каталог любым способом, чтобы включить все из master и sub directory – user7026863

+0

Этот код использует переключатель '-recurse', чтобы он собирал текстовые файлы из каталога и всех подкаталогов под ним, если вы отбрасываете' -recurse', он будет собирать только текстовые файлы с первого уровня каталог. –

+0

Большая помощь Майк .. Спасибо за последний вопрос .. Вместо Get-ChildItem, даже если мы напрямую укажем каталог, он не будет влиять ни на что. – user7026863

0

$ каталог = «C: \ TMP»

$ resultFile = $ env: USERPROFILE + "\ Desktop \ result.txt"

Get-ChildItem -Path $ directory -Include * .txt -Recurse | Получить контент | Out-File -FilePath $ resultFile -NoClobber

Не поместить результат в том же каталоге, что и текстовые файлы, или вы получите плохие результаты :)

+0

как насчет разделителя для каждого нового текстового файла, объединенного – user7026863

0

попробовать это:

$yourdir="c:\temp\" 
gci $yourdir -File -Filter *.txt | gc | out-file -FilePath ([Environment]::GetFolderPath("Desktop") + "\totalresult.txt") 

если вы хотите добавить имя файла для заголовка вы можете сделать это

+0

Предположим, что мои текстовые имена файлов - это a.txt b.txt c.txt d.txt при слиянии всех в e.txt, я могу получить динамический разделитель, который сам является именем текстового файла .. ex: a.text-content b.text -content c.text -content. Для каждого разделителя im lokking, чтобы иметь имя самого текстового файла, надеюсь, что я понял мой запрос – user7026863

+0

Я изменил свой код;) – Esperento57

+0

Большое спасибо :) – user7026863