Как скопировать * .csv в один текстовый файл в том же каталоге?Использование PowerShell - PullRequest
1 голос
/ 24 мая 2011

В C: Temp у меня есть 5 CSV-файлов, как мне скопировать все в один file.txt?Спасибо Иосиф

Ответы [ 2 ]

3 голосов
/ 24 мая 2011

Если вы знаете имена, вы можете получить такой контент:

Get-Content c:\item1.csv, c:\item2.csv
# or
Get-Content c:\*.csv

Команда Get-Content прочитает все указанные файлы и вернет их в виде массива строк. Обратите внимание, что вы также можете указать кодировку.

Get-Content -Encoding Utf8 c:\*.csv

(подробнее см. Get-Help Get-Content -online или help gc -online)

Что касается хранения содержимого в файле, перенаправьте результат с Get-Content на Set-Content. Вы также можете указать кодировку. Я говорю это, потому что перенаправление (>) по умолчанию выводит контент в формате Unicode, что не всегда требуется.

Короче говоря. Использование:

Get-Content *.csv | Set-Content file.txt

Конечно, вы можете использовать встроенные командлеты для работы с CSV. Сначала перечислите файлы и направьте их на Import-Csv. Это даст PsObject для каждой строки CSV. Это передано Export-CSv для хранения в файле:

Get-Item c:\csv1.csv, c:\csv2.csv | 
  Import-Csv | 
  Export-Csv c:\res.txt
2 голосов
/ 24 мая 2011
cat *.csv > yourtxtfilename.txt

Если вы просто собираетесь использовать командную строку, замените cat на type.

Порядок раскрытия подстановочного знака не определен, поэтому, если порядок важен, вы можете указать его явно с помощью:

cat file1.csv, file2.csv, file3.csv, file4.csv, file5.csv > file1-5.csv

cat - псевдоним для Get-Content

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...