Как добавить строку в команду DOS 'type <filename>' перед слиянием в файл? - PullRequest
1 голос
/ 10 августа 2010

Вопрос. У меня есть несколько текстовых файлов, содержащих текстовые файлы для создания таблиц / столбцов / представлений / сохраненных процедур.Теперь я хочу объединить текстовые файлы в один текстовый файл.

Я вхожу в каталог и набираю:

type *.sql >> allcommands.sql

Теперь проблема в том, что я должен добавить текст 'GO' после каждого файлаcontent.

Я могу добавить Go, выполнив

type *.sql >> allcommands.sql & echo  GO  >> allcommands.sql

Но эта вставка идет только один раз.Как я могу сделать это с помощью команд DOS?

Ответы [ 4 ]

6 голосов
/ 10 августа 2010

Вы хотите что-то вроде этого:

for %%f in (*.sql) do type %%f >>allcommands.sql & echo GO >> allcommands.sql

%% предназначен для использования в командном файле. Если вы не запускаете его из командного файла, вам нужны только одиночные знаки%.

3 голосов
/ 06 декабря 2012

Попробуйте это

for %%f in (*.sql) do (
type %%f >>allcommands.sql
echo. >> allcommands.sql
echo GO >> allcommands.sql
echo. >> allcommands.sql )

добавляет новую строку, а затем идет для каждого файла SQL. это работает для меня, попробуйте.

0 голосов
/ 04 марта 2011
@echo off
CLS
::concat.bat outfile.sql
setlocal EnableDelayedExpansion

If EXIST GOTMP.TMP DEL /Q GOTMP.TMP
Echo GO>GOTMP.TMP
ECHO.>>GOTMP.TMP

If EXIST "%~1" DEL /Q "%~1"
Echo.>"%~1"

for /f "tokens=*" %%A in ('dir  /a-d /on /b "*.sql"') do call :perfaction "%%A%" "%~1"
ECHO Done Generating Output "%~1"
ECHO.
pause
Goto :EOF

:perfaction
ECHO "%~1"
copy "%~2"+"%~1"+GOTMP.TMP "%~2"
GOTO :EOF
0 голосов
/ 10 августа 2010

Используйте copy , чтобы объединить первый файл с файлом с текстом «GO», а затем снова объединить со вторым файлом.

...