powershell - Invoke-Sqlcmd - 如何向包含冒号的 SQL 提供变量
问题描述
我在许多 PS 脚本中使用过这种类型的编码:
$SQlScriptParameters = (
"FtpServer='$FtpServer'",
"RotkatalogFörFTP='$RootFolderOnFtpServer'",
"HostUrlForWebAuthorization='$HostUrlForWebAuthorization'",
"UrlForSsekListener='$UrlForSsekListener'",
"RotkatalogFörAvstämningar='$RootFolderForReconciliations'",
"UrlFörWebbtjänsten='$UrlForWebSite'"
)
$result = Invoke-Sqlcmd -ServerInstance '(local)' -Database "$DatabaseName" -InputFile "$SqlAdaptSystemParameters" -QueryTimeout $maxQueryTime -AbortOnError -Variable $SQlScriptParameters
它工作正常,直到其中一个变量的值中包含一个冒号(如$HostUrlForWebAuthorization
)。现在我收到以下解析错误:
Invoke-Sqlcmd :
At line:1 char:1
+ Invoke-Sqlcmd -ServerInstance '(local)' -Database "$DatabaseName" -In ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ParserError: (:) [Invoke-Sqlcmd], ParserException
+ FullyQualifiedErrorId : ExecutionFailureException,Microsoft.SqlServer.Management.PowerShell.GetScriptCommand
在 Windows PowerShell ISE 调试器中显示时,字符串数组中的字符串值$SQlScriptParameters
如下:
HostUrlForWebAuthorization='http://ensymappacc1.cypointmo.local:80/'
这是它在 SQL 输入文件中的样子
SET NOCOUNT ON
DECLARE @FtpServer nvarchar(500)
DECLARE @RotkatalogFörFTP nvarchar(500)
DECLARE @HostUrlForWebAuthorization nvarchar(500)
DECLARE @UrlFörSsekLyssnaren nvarchar(500)
DECLARE @RotkatalogFörAvstämningar nvarchar(500)
DECLARE @UrlFörWebbtjänsten nvarchar(500)
-- Format: uname:pwd@hostname:port
SET @FtpServer = $(FtpServer)
SET @RotkatalogFörFTP = $(RootFolderForFTP)
-- Format: http://hostname:port/
SET @HostUrlForWebAuthorization = $(HostUrlForWebAuthorization)
SET @UrlFörSsekLyssnaren = $(UrlFörSsekLyssnaren)
SET @RotkatalogFörAvstämningar = $(RotkatalogFörAvstämningar)
-- Format: https://hostname:port/
SET @UrlFörWebbtjänsten = $(UrlFörWebbtjänsten)
如何设置$SQlScriptParameters
这样我就不会在冒号上收到解析错误?
解决方案
推荐阅读
- java - 以编程方式加载弹簧配置
- macos - 如何在 Mac 或裸机上的 x86-64 程序集中使用 monitor / mwait 指令
- node.js - Testcafe 脚本失败并出现此错误“调用导致重定向,因此不应导致其他操作。:\n 没有可用的堆栈跟踪”
- php - php邮件功能有效,但我没有收到任何邮件
- asp.net-web-api - 从根 url 重定向到 /swagger/ui/index 问题
- excel - VBA代码跳过整个部分,代码单独工作,但组合时不工作
- spring - spring boot 未从配置的外部 oracle 数据库中获取数据
- reactjs - 做出反应。访问根组件的 props
- amazon-web-services - 负载均衡器上的入口 ip 白名单 - aws k8s
- c# - 编写 T4 生成的代码以分隔输出文件