1

问题:我有几个包含 sql create table/column/view/storedProcedure 文本文件的文本文件。现在我想将文本文件合并到一个文本文件中。

我进入目录,然后输入:

type *.sql >> allcommands.sql

现在的问题是我应该在每个文件的内容之后添加文本“GO”。

我可以通过做附加Go

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

但这只会插入一次。如何使用 DOS 命令完成此操作?

4

4 回答 4

6

你想要这样的东西:

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

%%用于批处理文件。如果您不是从批处理文件运行它,则只需要单个 % 符号。

于 2010-08-10T16:04:22.350 回答
3

试试这个

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

它添加换行符,然后去每个 SQL 文件。它对我有用,试试吧。

于 2012-12-06T09:52:16.097 回答
0

使用copy将第一个文件与带有“GO”文本的文件连接起来,然后再次与第二个文件连接起来。

于 2010-08-10T16:00:17.383 回答
0
@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
于 2011-03-04T14:28:17.747 回答