【发布时间】:2021-08-09 17:49:53
【问题描述】:
我试图了解如何设置我的脚本,以便单引号将环绕我的变量。我有一个 1500 个客户的列表,我需要为其重复我的脚本,所以我想做一个 foreach 循环。
$customerlist = Invoke-Sqlcmd -Query "SELECT [CustomerNo] FROM [TABLE]" -ServerInstance "SERVER\INSTANCE"
#Loop through
foreach ($customer in $customerlist)
{
$inputParams = @{
"CustomerNo" = "'"+$customer+"'";
}
....Do rest of script
}
我需要 $inputparams 中的 $customer 变量以单引号中的字符串值显示,例如'01233456' 而不仅仅是 0123456。我已经尝试了几种不同的 "'"+$customer+"'" 迭代,但似乎无法获得正确的语法。有人可以帮帮我吗?
【问题讨论】:
-
看起来不错。是你失去了领先的0吗?你是从
invoke-sqlcmd取回整数还是字符串。如果没有看到更多“执行其余脚本”,就很难判断您在哪里遇到问题。"'"+$customer+"'"应该做你想做的或"'$customer'" -
@Daniel 我脚本的其余部分是将 SSRS 报告打印为 PDF。我将 CustomerNo 作为参数传递给报告,以便 SSRS 一次只运行 1 个客户。如果我将客户 # 硬编码到 PowerShell 中,"CustomerNo" = '0123456';它运行得很好。但是使用初始查询中的 $customer 值(即使我将查询修改为列出 1 个结果)似乎会破坏脚本。
-
作为另一种方法...看看
-f字符串格式运算符。 this >>> -f 格式运算符 - PowerShell - SS64.com — ss64.com/ps/syntax-f-operator.html
标签: powershell