1
我有一个叫做MSSQLStartStopServices.ps1
的Powershell脚本,用于停止一些SQL Server服务。该脚本正在使用第三方供应商软件进行调用。所讨论的参数是Fully qualified instance name
和Start|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
这会导致相同的错误,就像引号不存在一样。
如何解决此问题?
环绕所有的命令,而params引号的PowerShell –
typo用引号括住所有命令和参数''。\ MSSQLStartStopServices.ps1'HOSTNAME(local)'Start' –