Я думал, что @ образец Эндрю был неправильным, но на самом деле он более правильный, чем мой.
Дело в том, что спецификатор [/A | /B]
работает в обоих направлениях.И это немного сбивает с толку.copy /?
показывает [/ A |/ B] до первого исходного файла, но также после каждого другого источника, а также после пункта назначения
COPY ... [/ A |/ B] источник [/ A |/ B] [+ источник [/ A |/ B] ...] [пункт назначения [/ A |/ B]]
Спецификатор фактически применяется к файлу до , но затем также ко всем файлам после него, включая пункт назначения .Но только до тех пор, пока в командной строке не будет найден противоположный спецификатор , в этом случае более поздний спецификатор применяется ко всем файлам после него, но также и к одному до него.
По умолчанию для команды копирования используется ASCII
Образец.
copy aa + bb + cc dd
ASCII ASCII ASCII ASCII
Укажите все файлы, которые будут скопированы как двоичные, следующие три примера будут иметь тот же эффект:
copy /b aa + bb + cc dd
bin bin bin bin
copy aa /b + bb + cc dd
bin bin bin bin
copy aa + /b bb + cc dd
bin bin bin bin
и еще несколько тестов:
copy aa + bb /a + cc dd
ASCII ASCII ASCII ASCII
copy aa + bb /b + cc dd
ASCII BIN BIN BIN
copy /b aa + bb + cc dd /a
bin bin bin ascii
copy aa /a + bb + cc dd /b
ASCII ASCII ASCII bin
copy aa + bb + cc dd /b
ASCII ASCII ASCII bin
copy aa + bb + cc /a dd /b
ASCII ASCII ASCII bin
Ноесли повторно использовать источник в качестве места назначения, тип места назначения будет переопределять тип источника в том же файле:
copy aa + bb + cc aa /b
BIN ASCII ASCII BIN
copy aa + bb + cc /b aa
BIN ASCII BIN BIN
Это означает, что мой исходный образец фактически копировал все файлы как двоичные файлы, и / A в начале было переопределено.Теперь он делает то же самое, но выглядит лучше.
@ Эндрю Сэмпл делает то, что обещал, просто / A там бесполезен.
Если вы хотите добавить одинфайл в другой, вам не нужен третий файл.просто используйте первый снова как пункт назначения.Не может быть вторым, или вы будете перезаписывать его перед чтением.
это скрипт, который я использую для объединения всех текстовых файлов из списка файлов.
@echo off
set concatenated=final.js
pushd %~dp0
set error=
copy nul "%concatenated%"
if errorlevel 1 set error=true
for /f %%a in (filelist.txt) do (
echo. && echo.
echo. *** %%a
copy /B /V "%concatenated%" + "%%a" "%concatenated%"
if errorlevel 1 set error=true
)
popd
echo.
if defined error (echo. !!!!!!!!! THERE WERE ERRORS !!!!!!!!!!
) else echo. *** ALL DONE ***
echo.
pause
exit /b