[CMD] Объединение файлов, переданных через аргумент

Паразит

Активный пользователь
Сообщения
65
Реакции
2
Баллы
88
Привет. Почему у меня не получается объединить файлы переданные через переменную "%*"?
Вот я батнику передаю файлы в виде аргументов, и хочу, чтобы он их собрал в один.

CMD/BATCH:
copy %* C:\111.txt
 

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
6,612
Реакции
6,051
Баллы
808
Потому что copy для объединения нужно использовать +
Вам нужен цикл:
CMD/BATCH:
setlocal enabledelayedexpansion
for %%a in (%*) do if not defined t (set t=+) else (set t=!t!%%a+)
copy /b /y !t:~1,-1! "%~1"
Пример использования:
CMD/BATCH:
co 4.txt "1.txt" 2.txt 3.txt
Соединит файлы "1.txt" 2.txt 3.txt и сохранит под именем 4.txt
 

Паразит

Активный пользователь
Сообщения
65
Реакции
2
Баллы
88
Dragokas, эта команда не так работает.
Надо, чтобы переданные файлы собрались в другой файл.
И между секциями в этом файле, нужно вставить какой-нибудь разделитель.
Например, "=======".
 

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
6,612
Реакции
6,051
Баллы
808
Dragokas, эта команда не так работает.
В каком смысле? Справку почитайте copy /?
Если так понятнее:
CMD/BATCH:
copy /b 1.txt + 2.txt + 3.txt result.txt

И между секциями в этом файле, нужно вставить какой-нибудь разделитель.
Тогда нужно создать ещё один файл с ====== и вставлять в команду, например:
CMD/BATCH:
setlocal enabledelayedexpansion
echo =======>s
for %%a in (%*) do set t=!t!%%a+s+
copy /b /y !t:~,-3! "result.txt"
del s
 
Сверху Снизу