Sql server 附加到Powershell脚本的输出
我正在尝试编写一个powershell脚本,该脚本将创建一个sql文件,其中包含给定目录中的文件名列表,并在每个文件名的开头附加一个PRINT语句和“:r”命令,最后在文件名的结尾添加“GO” 请看下面Sql server 附加到Powershell脚本的输出,sql-server,powershell,Sql Server,Powershell,我正在尝试编写一个powershell脚本,该脚本将创建一个sql文件,其中包含给定目录中的文件名列表,并在每个文件名的开头附加一个PRINT语句和“:r”命令,最后在文件名的结尾添加“GO” 请看下面 PRINT 'C:/Schemas/Admin.sql' GO :r "C:/Schemas/Admin.sql" GO PRINT 'C:/Schemas/Audit.sql' GO :r "C:/Schemas/Audit.sql" GO 我可以打
PRINT 'C:/Schemas/Admin.sql'
GO
:r "C:/Schemas/Admin.sql"
GO
PRINT 'C:/Schemas/Audit.sql'
GO
:r "C:/Schemas/Audit.sql"
GO
我可以打印出文件名,但我似乎不知道如何为每行添加前缀和后缀。
这就是我所拥有的:
(get-childitem "C:\schemas" -recurse | where {$_.extension -eq ".sql"}).fullname | out-file "C:\powerShell\masterSQL.sql"
因此,如果您能够以您想要的方式在控制台中显示它,那么您可以捕获到一个变量,或者以相同的格式直接输出管道。可以做一些改进 首先,对
getchilditem
命令本身进行过滤,让文件系统提供程序承担繁重的工作。比获取所有文件和使用Where Object
第二,使用设置内容
,这样就不会出现奇怪或意外的编码问题
最后要注意的是,在$\uu
(全名)周围加上双引号,这是为了确保路径被双引号包围
(Get-ChildItem "C:\schemas" -Filter *.sql -Recurse).FullName |
ForEach-Object {
"PRINT ""$_"""
"GO"
":r ""$_"""
"GO"
} | Set-Content -Path "C:\powerShell\masterSQL.sql" -Encoding UTF8