批处理脚本以解析output.txt并基于output.txt中的行获取新的sql脚本
以下是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' 去 谢谢你们的帮助批处理脚本以解析output.txt并基于output.txt中的行获取新的sql脚本,sql,batch-file,Sql,Batch File,以下是output.txt文件: Changed database context to 'MY_DB'. name -------------------------------------------------------------------
下面的批处理文件按照您的要求进行分割,只需完成输出详细信息
@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
)
)