Mam następujący główny skrypt powłoki Power Shell. Definiuje pojedynczą zmienną V1 a następnie uruchamia sqlps, który używa tej zmiennej. Ponieważ sqlps samo w sobie jest minishellem, którego nie rozpoznaje V1
$V1 = "asdasd"
sqlps -NoLogo -Command {
invoke-sqlcmd -Query $V1 -ServerInstance "SomeImstamce" -Database "SomeDatabase" -Username "SomeUsernName" -Password "SomePassword"
}
Dlatego zaktualizowałem blok sqlps -Command, aby oczekiwać parametru w następujący sposób. Jednak nie jestem pewien, jak przekazać zewnętrzną wartość zmiennej V1 do wewnętrznego sqlps -Command Block
$V1 = "RBIQHSAPPD049v.b2b.regn.net"
sqlps -NoLogo -Command {
param ($SqlPsParam)
invoke-sqlcmd -Query $SqlPsParam -ServerInstance "SomeImstamce" -Database "SomeDatabase" -Username "SomeUsernName" -Password "SomePassword"
}
Dostępna jest pomoc dotycząca składni http://technet.microsoft.com/en-us/library/cc280450.aspx i próbowałem wielu kombinacji, ale wydaje mi się, że nie działa.
Dowolny pomysł?
Odpowiedzi:
3 dla odpowiedzi № 1och, sprawdź to
$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