Мой сценарий заключается в следующемВыполнение динамической команды в PowerShell
New-Alias -Name sqlpackage -Value "C:\Program Files (x86)\Microsoft SQL
Server\130\DAC\bin\sqlpackage.exe"
$command = "sqlpackage /Action:Publish /SourceFile:$sourceFile /tcs:$TargetConnectionString /p:ScriptRefreshModule="+"$ScriptRefreshModule"+" /p:ScriptNewConstraintValidation="+"$ScriptNewConstraintValidation"+ `
" /p:GenerateSmartDefaults="+"$GenerateSmartDefaults"+" /p:BlockOnPossibleDataLoss="+"$BlockOnPossibleDataLoss"+" /p:BackupDatabaseBeforeChanges="+"$BackupDatabaseBeforeChanges"+ `
" /v:ErrorEmailRecipients="+"$ErrorEmailRecipients"+" /v:DeploymentEnvironment="+"$environment"+ $additionalVariables
& $command
Это терпит неудачу с sqlpackage Командлет не найден. Я попытался ввести весь путь EXE, вместо того, чтобы использовать псевдоним, который также не изменил результат.
Я также пробовал Invoke-Command
, Invoke-Item
и Invoke-Expression
, все не удалось запустить. Я думаю как сценарий bash, который может быть моим падением. Что делать, чтобы заставить эту команду работать?
Он должен быть динамическим, поскольку переменные изменяются в соответствии с исходными файлами.
Также, если вам нужно несколько переменных, вы можете сделать '$ дополнительныеVariables ="/v: Products = "Products/v: ClearData =" no "', а затем '$ AdditionalVariables.split ('')', который получит все. –