Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
批处理脚本以解析output.txt并基于output.txt中的行获取新的sql脚本_Sql_Batch File - Fatal编程技术网

批处理脚本以解析output.txt并基于output.txt中的行获取新的sql脚本

批处理脚本以解析output.txt并基于output.txt中的行获取新的sql脚本,sql,batch-file,Sql,Batch File,以下是output.txt文件: Changed database context to 'MY_DB'. name -------------------------------------------------------------------

以下是output.txt文件:

Changed database context to 'MY_DB'. name -------------------------------------------------------------------------------------------------------------------------------- UserDomains ApprovalConfiguration ApprovalLevelRoles CreditCardHolderTitle ApprovalRole (22 rows affected) name -------------------------------------------------------------------------------------------------------------------------------- ApprovalConfigurationDelete ApprovalConfigurationInsert ApprovalConfigurationSelect ApprovalConfigurationsSelectAll (103 rows affected) 将数据库上下文更改为“MY_DB”。 名称 -------------------------------------------------------------------------------------------------------------------------------- 用户域 认可配置 ApprovalLevelRoles 信用卡所有权 认可角色 (受影响的22行) 名称 -------------------------------------------------------------------------------------------------------------------------------- 批准配置删除 批准配置插入 批准配置选择 批准配置全部选中 (受影响的103行) 以下是SQL表的名称

UserDomains ApprovalConfiguration ApprovalLevelRoles CreditCardHolderTitle ApprovalRole 用户域 认可配置 ApprovalLevelRoles 信用卡所有权 认可角色 。。。这是存储过程的名称

ApprovalConfigurationDelete ApprovalConfigurationInsert ApprovalConfigurationSelect ApprovalConfigurationsSelectAll 批准配置删除 批准配置插入 批准配置选择 批准配置全部选中 我想以某种方式区分表和存储过程。 批处理脚本应该能够生成一个SQL文件,并为output.txt中的每一行表和存储过程填充该文件

因此,在最后,新的SQL文件应该是这样的:

-- TABLES exec sp_addarticle @publication = N'$(PublicationName)', @article = N'UserDomains', @type = N'logbased' GO exec sp_addarticle @publication = N'$(PublicationName)', @article = N'ApprovalConfiguration', @type = N'logbased' GO exec sp_addarticle @publication = N'$(PublicationName)', @article = N'ApprovalLevelRoles', @type = N'logbased' GO exec sp_addarticle @publication = N'$(PublicationName)', @article = N'CreditCardHolderTitle', @type = N'logbased' GO exec sp_addarticle @publication = N'$(PublicationName)', @article = N'ApprovalRole', @type = N'logbased' GO -- STORE PROCEDURES exec sp_addarticle @publication = N'$(PublicationName)', @article = N'ApprovalConfigurationDelete', @type = N'proc schema only' GO exec sp_addarticle @publication = N'$(PublicationName)', @article = N'ApprovalConfigurationInsert', @type = N'proc schema only' GO exec sp_addarticle @publication = N'$(PublicationName)', @article = N'ApprovalConfigurationSelect', @type = N'proc schema only' GO exec sp_addarticle @publication = N'$(PublicationName)', @article = N'ApprovalConfigurationsSelectAll', @type = N'proc schema only' GO --桌子 exec sp_addarticle@publication=N'$(PublicationName)',@article=N'UserDomains',@type=N'logbased' 去 exec sp_addarticle@publication=N'$(PublicationName)',@article=N'ApprovalConfiguration',@type=N'logbased' 去 exec sp_addarticle@publication=N'$(PublicationName)',@article=N'ApprovalLevelRoles',@type=N'logbased' 去 exec sp_addarticle@publication=N'$(PublicationName)',@article=N'creditcardentitle',@type=N'logbased' 去 exec sp_addarticle@publication=N'$(PublicationName)',@article=N'ApprovalRole',@type=N'logbased' 去 --储存程序 exec sp_addarticle@publication=N'$(PublicationName)',@article=N'ApprovalConfigurationDelete',@type=N'proc schema only' 去 exec sp_addarticle@publication=N'$(PublicationName)',@article=N'ApprovalConfigurationInsert',@type=N'proc schema only' 去 exec sp_addarticle@publication=N'$(PublicationName)',@article=N'ApprovalConfigurationSelect',@type=N'proc schema only' 去 exec sp_addarticle@publication=N'$(PublicationName)',@article=N'ApprovalConfigurationsSelectAll',@type=N'proc schema only' 去 谢谢你们的帮助


下面的批处理文件按照您的要求进行分割,只需完成输出详细信息

@echo off
setlocal EnableDelayedExpansion

for /F %%a in (output.txt) do (
   set "line=%%a"
   if "!TABLE!" equ "true" (
      if "!line:~0,1!" neq "(" (
         echo TABLE: !line!
      ) else (
         set TABLE=false
      )
   ) else if "!PROC!" equ "true" (
      if "!line:~0,1!" neq "(" (
         echo PROC: !line!
      ) else (
         set PROC=false
      )
   ) else if not defined TABLE (
      if "!line:~0,1!" equ "-" (
         set TABLE=true
         echo -- TABLES
      )
   ) else if "!line:~0,1!" equ "-" (
      set PROC=true
      echo -- STORE PROCEDURES
   )
)