我正在尝试从SQL Server执行power shell脚本。 使用传递参数的静态值,每件事都适用于我。 但是,当我尝试使用动态参数时,它不起作用。
以下是我正在尝试的陈述:
declare @dteBatchDate as varchar(20)
set @dteBatchDate='2014-06-23 15:49:00'
EXEC xp_cmdshell 'powershell.exe -c "get-service | D:\Listing1.ps1 -@dteBatchDate"'
我认为这是一个语法问题。任何机构都可以提出解决方案。
先谢谢
答案 0 :(得分:4)
将变量传递给xp_cmdshell
的方式不允许为PowerShell呈现它以查看它。您基本上是从PowerShell提示符的视图中执行此操作:
powershell.exe -c "get-service | D:\Listing1.ps1 -@dteBatchDate"
以同样的方式,当您需要在PowerShell中执行命令之前呈现的变量时,您必须对xp_cmdshell
执行相同的操作。
答案 1 :(得分:3)
试试这个:
declare @dteBatchDate as varchar(20)
declare @sql as varchar(255)
set @dteBatchDate='2014-06-23 15:49:00'
set @sql = 'powershell.exe -c "get-service | D:\Listing1.ps1 -' + @dteBatchDate + '"'
EXEC xp_cmdshell @sql