Командная строка или пакетный cmd для объединения нескольких файлов - PullRequest
0 голосов
/ 24 апреля 2020

У меня есть 10 sql файлов в одном каталоге

Есть ли способ командной строки для объединения этих файлов , включая имя файла и его содержание каждого один в один файл?

например, finalfile. sql должен выглядеть следующим образом

   sql1.sql
   '
   'sql1 content.....
   '
   sql2.sql
   '
   'sql2 content.....
   '
   etc

Я использую windows 10

1 Ответ

0 голосов
/ 26 апреля 2020

При условии, что файл sql имеет только обычный текст, да, вы можете сделать это стандартными пакетными командами.

Вам нужны следующие биты знаний:

  • Печать содержимого файла на консоль: type <filename>
  • Печать пользовательского вывода на консоль: echo <mytext>
  • Печать новой строки: echo. (в этом случае должно работать)
  • Перенаправление вывода консоли в файл: sometext > <outputfile> (добавление в файл с помощью >>)
  • Группировка выходов для перенаправления: заключить в скобки ( ...) > <outputfile>
  • Необязательно: повторять все файлы в каталоге: for /f (см. for /?, если это необходимо)

Пример: sqlmerge.bat

В следующем быстром и простом примере , Я предполагаю, что вы знаете имена файлов 10 sql файлов и вам не нужен скрипт, который будет работать для произвольного количества файлов.

Пакетный файл "sqlmerge.bat" (выбрал ваш имя, как вам нравится) будет выглядеть так:

@echo off

(
echo sql1.sql
type sql1.sql

echo.
echo sql2.sql
type sql2.sql

echo.
echo FILENAME
type FILENAME

...continue copy&paste-adding above example block for the other needed files...

) > finalfile.sql

Пакетный файл должен быть запущен в В том же каталоге находятся файлы *. sql. В этом же каталоге будет создан выходной файл.

...