如何从主 Windows powershell 脚本将参数传递给 sqlps

nab*_*rid 5 powershell powershell-2.0

我有一个主要的 powershell 脚本如下。它定义了一个变量$V1,然后启动使用该变量的 sqlps。由于 sqlps 本身是一个 minishell,它无法识别$V1

$V1 = "asdasd"    

sqlps -NoLogo -Command {
            invoke-sqlcmd -Query $V1 -ServerInstance "SomeImstamce" -Database "SomeDatabase" -Username "SomeUsernName" -Password "SomePassword"
      }
Run Code Online (Sandbox Code Playgroud)

因此,我更新了 sqlps -Command 块以期望参数如下。但是我不确定如何将外部 $V1 变量值传递给内部 sqlps -命令块

$V1 = "RBIQHSAPPD049v.b2b.regn.net"

sqlps -NoLogo -Command {
            param ($SqlPsParam)
            invoke-sqlcmd -Query $SqlPsParam  -ServerInstance "SomeImstamce" -Database "SomeDatabase" -Username "SomeUsernName" -Password "SomePassword"
      }
Run Code Online (Sandbox Code Playgroud)

http://technet.microsoft.com/en-us/library/cc280450.aspx上有语法帮助 ,我尝试了很多组合,但似乎不起作用。

任何想法?

nab*_*rid 5

哦,终于明白了

$V1 = "sdfsaf"
$V2 = "safd"

sqlps -NoLogo -Command {
            param ($SqlPsParam1, $SqlPsParam2)
            invoke-sqlcmd -Query $SqlPsParam  -ServerInstance "SomeImstamce" -Database "SomeDatabase" -Username "SomeUsernName" -Password "SomePassword"
      } -args $V1, $V2
Run Code Online (Sandbox Code Playgroud)