2013-06-19 57 views
1

我有一個叫做MSSQLStartStopServices.ps1的Powershell腳本,用於停止一些SQL Server服務。該腳本正在使用第三方供應商軟件進行調用。所討論的參數是Fully qualified instance nameStart|Stop如何使用括號將參數從命令行傳遞給Powershell?

例如,

MSSQLStartStopServices.ps1 HOSTNAME\INSTANCENAME Start 

對於默認實例,軟件作爲INSTANCENAME傳遞(本地)。

MSSQLStartStopServices.ps1 HOSTNAME\(local) Start 

但是當我運行此我得到一個錯誤的Powershell的:

術語「本地」不被識別爲cmdlet,函數,腳本文件或可操作的程序的名稱。檢查名稱的拼寫,或者如果包含路徑,請驗證路徑是否正確,然後重試。

當我嘗試用引號把實例名稱它在PowerShell窗口工作正常:

MSSQLStartStopServices.ps1 "HOSTNAME\(local)" Start 

但是第三方軟件從命令行調用Powershell的第一,就像這樣:

powershell .\MSSQLStartStopServices.ps1 "HOSTNAME\(local)" Start 

這會導致相同的錯誤,就像引號不存在一樣。

如何解決此問題?

+0

環繞所有的命令,而params引號的PowerShell –

+0

typo用引號括住所有命令和參數''。\ MSSQLStartStopServices.ps1'HOSTNAME(local)'Start' –

回答

5

嘗試用雙引號引起你的腳本調用,然後每個參數用單引號:「\ MSSQLStartStopServices.ps1 HOSTNAME \(本地)開始」

".\MSSQLStartStopServices.ps1" 'HOSTNAME\(local)' 'Start' 
相關問題