来自另一个程序(metatrader)我启动了一个ps脚本来下载一些电子邮件:
shl = ShellExecuteW(0,0,"powershell.exe", "-file x.ps1","..\\path\\to\\scripts",SW_SHOW);
几周后没有任何问题(!)我在控制台中突然看到一些红色错误代码 - 但它关闭得太快,返回代码(shl)没有发出错误信号:shl< = 32。
现在我尝试用
启动ShellExecuteW(..) shl = ShellExecuteW(0,0,"powershell.exe","..","..",SW_SHOWNOACTIVATE);
# SW_SHOWNOACTIVATE = 4
# 4: Displays a window in its most recent size and position. The active window remains active.
但是控制台再次消失:(
1)我需要输入什么才能使控制台保持打开状态 - 让我手动关闭1t?
2)如何强制ShellExecuteW(..)将错误消息添加到错误文件中?
谢谢,周末愉快, Gooly
PS:用ShellExecuteW(..)重新启动程序后,它再次运行而没有任何错误?
答案 0 :(得分:1)
我认为问题不在于ShellExecute,而是如何调用Powershell。
试试这个:
shl = ShellExecuteW(0,0,"powershell.exe", "-noexit -file x.ps1","..\\path\\to\\scripts",SW_SHOW);
答案 1 :(得分:1)
只是为了记录,您可以通过在脚本末尾添加read-host
来保持打开状态。
您可以使用脚本(start-transcript
/ stop-transcript
)记录错误消息,或者只是在脚本中添加错误处理(尝试捕获然后手动记录)。
此致