Войти

Показать полную графическую версию : [решено] "Склеивание" нескольких текстовых файлов


yaoleg2
21-09-2011, 12:18
Помогите создать один текстовый файл output.txt если в директории есть около десятка текстовых файлов типа 1*.txt+2*.txt+3*.txt и т.д.?

Раньше на Windows 98 использовал скрипт: copy 1*.txt+2*.txt+3*.txt ... output.txt но в Windows XP файл output.txt не создается если нет файла 1*.txt!
Потому что в рабочей директории не всегда есть файлы от 1*.txt+2*.txt+3*.txt ... , а файл output.txt создавать нужно из тех текстовых файлов которые есть в наличии.

Использовал скрипт: @echo off
pushd c:\1
for %%j in (*.txt) do type "%%j" >> output.txt
popd
:: End_Of_Batch
но он обрабатывает вышеуказанные файла по несколько раз, а это неприемлемо!
Может кто подскажет КАК нужно написать скрипт, чтоб все файлы склеивались в один?

Большое спасибо!!!

megaloman
21-09-2011, 13:14
Как я подозреваю на основании примеров в вопросе, в папке содержатся не только те файлы, которые надо объединить. Поэтому применяются несколько масок, причём не всегда по этим маскам присутствуют файлы.cd . >output.txt
copy /b output.txt+1*.txt+2*.txt+3*.txt ... output.txtНедостаток - вставляется в конец файла output символ с кодом 1А Исправлено с учетом замечания SendMessagecd . >output.txt
FOR %%f IN (3*.txt 1*.txt 2*.txt) DO Type "%%f" >>output.txt

SendMessage
21-09-2011, 13:52
файл output.txt создавать нужно из тех текстовых файлов которые есть в наличии. »
Никакой проблемы нет:
copy *.txt output.txt /b
вставляется в конец файла output символ с кодом 1А »
megaloman, если копировать файлы как двоичные (ключ /b) - не будет вставляться.




© OSzone.net 2001-2012