求CMD脚本代码,一次性全部执行*.SQL文件

我的d:\sp_bak目录下有10000多个*.SQL文件
想通过批处理执行

如果用下面两个其中一个代码,则系统只会执行第一个SQL文件,然后就停下来
@echo off
for /r d:\sp_bak %%i in (*.sql) do sqlplus scott/tiger@db_shop @%%i
pause

@echo off
for /r d:\sp_bak %%i in (*.sql) do cmd.exe /c sqlplus scott/tiger@db_shop @%%i
pause

如果用这个代码,则系统会弹出N多个CMD窗口,直到把系统卡死(如果*.sql文件少,则可用这个方法)
@echo off
for /r d:\sp_bak %%i in (*.sql) do start cmd.exe /c sqlplus scott/tiger@db_shop @%%i
pause

求CMD脚本代码,一次性全部执行这些*.sql文件

谢谢

不要使用cmd依次调用.sql文件,这样相当于调用了N个cmd.exe。

一次执行方法如下:

1 写一个公共的global.sql文件,内容如下:

[code="sql"]
@d:\sp_bak\1.sql
@d:\sp_bak\2.sql
...
[/code]

2 用cmd调用这个公共sql即可。

当然,这里面的公共文件名不好办,文件太多了,不好写,下面给一个简单的办法:

可以使用DOS命令来获得所有文件名.
dir . >> sqlfile.txt
然后编辑SQLFILE.TXT文件,去掉无关信息,在文件名前加上@,并把SQLFILE.TXT改名为SQLFILE.SQL就可以了.这样执行@SQLFILE.SQL就相当于批处理文件了