2015-05-15 5 views
1

Я пытаюсь запустить SqlPackage.exe из Powershell, используя переменную строку в качестве параметра Исходный_файла:Powershell выполнить файл с путем в параметрах

$fileExe = "C:\Program Files (x86)\Microsoft SQL Server\120\DAC\bin\SqlPackage.exe" 

& $fileExe /Action:Publish /SourceFile:$OutputVariable\file.dacpac /Profile:C:\sql\file.sqldatabase.publish.xml 

Где $ OutputVariable является папкой, содержащей полный путь

К сожалению Я получаю следующую ошибку:

SqlPackage.exe : *** Illegal characters in path. 
At C:\powershell\test.ps1:20 char:6 
+  & $fileExe /Action:Publish /SourceFile:$OutputVariable\file.dacpac  /Profile:C ... 
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
+ CategoryInfo   : NotSpecified: (*** Illegal characters in path.:String) [], RemoteException 
+ FullyQualifiedErrorId : NativeCommandError 

Я попытался окружить кавычками и разделить параметры, но я не дошел до решения. Любая идея?

Заранее благодарен!

+0

Что такое пример $ OutputVariable? –

+0

C: \ temp \ build \ DB1 OR C: \ temp \ build \ DB2 etc – Attila

+0

Попробуйте заменить его на фактическую строку, чтобы увидеть, работает ли она, что, по крайней мере, подтвердит, что проблема связана именно с этой переменной. –

ответ

0

Видимо путем обрезки $ OutputVariable

$OutputVariable.Trim() 

проблема решена.

+2

Что указывает, что OutputVariable имел место в начале или в конце, которое действительно вызывало бы эту ошибку, поскольку имена файлов не могут начинаться с пробела. –

Смежные вопросы