西夏一品堂 2012-01-07 14:44 采纳率: 0%
浏览 456
已采纳

求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文件

谢谢

  • 写回答

1条回答 默认 最新

  • housen1987 2012-01-07 15:06
    关注

    不要使用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就相当于批处理文件了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 Python时间序列如何拟合疏系数模型
  • ¥15 求学软件的前人们指明方向🥺
  • ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接
  • ¥15 MCNP里如何定义多个源?
  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 STM32驱动继电器