【问题标题】:How to run PowerShell script by Sql Server Management Studio如何通过 Sql Server Management Studio 运行 PowerShell 脚本
【发布时间】:2017-09-18 22:58:21
【问题描述】:

我是 SSMS 和 PowerShell 的新手,我需要一些提示。我正在使用 SSRS 并通过 SSMS 处理调度。特别是,我将通过 SSRS 生成报告,并且在生成报告后,我必须使用 powershell 脚本通过 SSMS 通过邮件发送它。所以调度的第一步是生成报告。作为第二步,我的脚本必须从查询中获取数据,等到报告生成后再发送报告。阻止我的脚本的点(没有错误..如果文件存在,请继续等待)是:

while ($True) 
{ 
   if (Test-Path($PathComplete)) 
   {
      break 
   }
   Start-Sleep -s 3 
}

如果我删除这段代码,脚本运行良好(如果文件存在)。

所有脚本在 cmd 运行的 PowerShell 中运行良好

有人可以帮助我吗?

Tnx 太多了

【问题讨论】:

  • 您使用的是哪个版本的 PowerShell?

标签: powershell reporting-services ssms


【解决方案1】:

我不建议使用无限的while,但如果你必须这样做

while (!(Test-Path($PathComplete))) 
{ 

   Start-Sleep -s 3 
}

!(Test-Path()) 表示如果 Test-path 返回 $false

【讨论】:

  • Nothing.. 代码一直被阻塞在同一点.. 我认为问题出在 Start-Sleep -s 3 行
  • 你怎么知道不是事实 test-path 回来了
  • 我在 cmd 运行的 PowerShell 上尝试了相同的脚本,该脚本运行良好。如果我删除报告,脚本会等待,如果我将报告放在目录中,脚本会一直移动到最后。在相同的情况下,SSMS 中的 PowerShell 一直在等待..
  • 所以你说当你从那个while语句中删除 Start-Sleep -s 3 然后它工作正常?
  • 好吧,我现在一直在尝试 (!(Test-Path(....))) {} 阻止执行...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-18
  • 2012-03-14
  • 2022-01-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多