151

Я хочу сделать именно то, что делает unix "cat", но на моем ПК. Существует ли простая эквивалентная команда для командной строки Windows?

В частности, я хочу создать файл из всех файлов данного типа в папке

В Unix:

cat *fna >all_fna_files.fna

(который объединяет все текстовые файлы ".fna" в один большой текстовый файл)

3 ответа3

192

type

Он работает через command.com , cmd и PowerShell (хотя в последнем это псевдоним для Get-Content , как и cat , поэтому вы можете использовать любой из них). Из статьи Википедии (выделено мое):

В вычислениях type - это команда в различных VMS. Интерпретаторы (оболочки) командной строки AmigaDOS, CP/M, DOS, OS/2 и Microsoft Windows, такие как COMMAND.COM, cmd.exe, 4DOS/4NT и Windows PowerShell. Используется для отображения содержимого указанных файлов. Это аналог команды Unix cat.

C:\>echo hi > a.txt
C:\>echo bye > b.txt
C:\>type a.txt b.txt > c.txt
C:\>type c.txt
hi
bye
21

Из командной оболочки:

copy a.txt + b.txt + c.txt output.txt

(Но это следует за командной оболочкой, использующей control-Z в качестве маркера конца файла, поэтому в некоторых случаях не подходит).

В PowerShell:

get-content a.txt,b.txt,c.txt | out-file output.txt

и вы можете контролировать (используя параметр -Encoding ) кодировку файла (которая позволяет транскодировать, используя разные кодировки для чтения и записи).

1

Я только что использовал команду cat в DOS (Windows 7 Pro) следующим образом и успешно объединил 3 файла (log1.txt, log2.txt, log3.txt) в один файл:

cat log*.txt >> myBigLogFile.txt 

Примечание: cat log*.txt > myBigLogFile2.txt также предоставляет тот же результат, но он переопределит предыдущий файл.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .