Visual Studio 如何防止powershell在脚本执行期间打开两个窗口?

yacmzcpb  于 2023-10-23  发布在  Shell
关注(0)|答案(1)|浏览(137)

我有一个简单的powershell脚本,它在执行时自动发送XML文件。
我有一个用Visual Basic编写的VB.NET控制台应用程序,它在程序中调用powershell脚本,一旦满足某些参数就执行。
powershell脚本的调用可以正常工作,并且powershell按预期执行,但无论出于何种原因,powershell脚本执行了两次。这通常不会是一个问题,但它发送重复的电子邮件,因为这一点时,它应该只发送一个。
下面是调用powershell脚本的代码:

Public Sub SendDaEmailMakeXMLFile()
     Using p As Process = New Process
         p.StartInfo = New ProcessStartInfo() With {
             .CreateNoWindow = True,
             .UseShellExecute = True,
             .FileName = "C:\SVMXEmailAutomation.ps1"
         }
         p.Start()
         p.WaitForExit()
         p.Close()



     End Using
 End Sub

第二个窗口弹出并立即执行,如果我删除WaitforExit()命令,如下所示:

如果我保留WaitforExit()命令,第一个窗口将按预期工作,关闭,然后第二个示例将直接弹出并执行。
我在语法上犯了一个错误吗?我的日志中没有错误输出。
感谢你的评分

fnatzsnv

fnatzsnv1#

感谢大家的帮助和协助!
在浏览了日志文件并使用了断点之后,我确定我将代码放置在它自己的子类中的地方,它会导致代码执行两次。我只是删除了SendDaEmailMakeXMLFile()公共子类,并将上面问题中列出的代码放在完整程序的Main Sub主体中。
这样做只会导致代码执行一次。希望这有助于其他人在未来,如果他们遇到这个问题!

相关问题