Объединение содержания текстовых файлов в PowerShell

 

 PowerShellсниппет

Иногда возникает потребность объединить содержание нескольких текстовых файлов в один. Если таких файлов несколько, то можно это сделать вручную. Но если их десятки или сотни, а выбираются они по набору заданных критериев, то лучше автоматизировать такую задачу, тем более, что в PowerShell она решается в одну строку.

Я приведу два примера, по-разному работающих с содержанием целевого файла: в первом варианте произойдёт перезапись содержания целевого файла, во втором варианте - к его содержанию будут добавлены новые данные.

# Вариант 1
Set-Content -Path $env:HOMEPATH/Documents/MyTexts.txt -Value (Get-Content -Path $env:HOMEPATH/Documents/MyTexts/*.txt)
# Вариант 2
Add-Content -Path $env:HOMEPATH/Documents/MyTexts.txt -Value (Get-Content -Path $env:HOMEPATH/Documents/MyTexts/*.txt)

В обоих вариант происходит объединение содержания всех найденных файлов с расширением .txt в директории $env:HOMEPATH/Documents/MyTexts с сохранением в файл $env:HOMEPATH/Documents/MyTexts.txt.

Узнать подробнее об используемых командлетах PowerShell можно в официальной справке Microsoft:

Это очередной практический пример того, как одна строка и два командлета PowerShell экономят массу времени и избавляют пользователя от выполнения рутинной работы.