如何强制 Windows 命令处理器在后台启动?

如何强制 Windows 命令处理器在后台启动?

我正在运行一些 Stata 代码,该代码每秒循环调用一次 Windows 命令提示符。每次执行此操作时,Windows 命令处理器的新实例都会在前台启动,执行命令,然后关闭。这非常不方便,因为它实际上阻止了我使用计算机执行其他任务:每次命令处理器启动时,我正在处理的任何内容都会被发送到后台一秒钟。

有没有办法将命令处理器设置为始终在后台启动,或者有其他解决方法?如果相关,我正在执行的命令是 curl GET 请求。

注意:我尝试在命令前加上“start /b”——但这不起作用。

答案1

说实话……我对 stata 了解甚少……但我知道如何阅读手册并破解垃圾程序以使其按我的意愿运行(通常)。我没有 stata,但我可以告诉你你的选择以及如何解决这个麻烦。

我自己是一名程序员,所以我有无数的工具,但你需要利用你所拥有的工具。

No -- Stata cannot natively run a .exe file

当然可以!。Stata 不会强迫您使用该shell命令(或!快捷方式)。不幸的是,这有一些警告。

这个新选项将需要您发挥一些创造力来解决您的问题。

Stata 支持该winexec命令(它会告诉您它有多旧)。 winexec是 Windows 16 位 api 的一部分(如 PRE-WINDOWS95)。

winexec这是使用而不是 的棘手部分shell

  • shell仅通过 cmd.exe 运行垃圾程序并暂停 stata 并将 shell 拉到前台直到完成。然后返回到 stata。您不喜欢的行为是故意的!Stata 实际上是故意将 cmd.exe 窗口拉到顶部!您不太可能绕过它。我自己可以想到一些简单的方法……但它们都需要一些编程知识(足以制作一个简单的 .exe 程序)或初学者黑客技能。

  • winexec允许你运行任何你想要的东西.. 带有命令行参数!但是等等.. 该死的! winexec它不等待你的 curl玩意儿在返回 stata 之前完成。

如果这不起作用,我们就陷入了困境,你必须发挥创造力来解决它。

至少现在,您有一些可用的选项。

想象一下,当您按下⊞ Win+时R,会出现运行对话框。这基本上就是winexec给我们的。想象一下,如果您按下回车键的那一刻,它就返回到 stata。

当您说 curl 运行时in a recurring loop once every second...这非常令人怀疑...但我猜是可能的。Stata 需要调用shell函数,导致窗口启动命令处理器并打开 curl。Curl 需要握手、连接、下载某些内容并关闭。这可能需要一秒钟以上的时间。问题是... shellWAITS,这让我想知道您的计时器实际上在计时什么。

可以直接使用winexec命令运行 curl,但您不希望它们备份,因为即使前一个命令尚未完成,它们也会继续执行。您可以计算出运行所需的实际时间,并将其放入计时器循环中。

另一个选项是最小化运行批处理文件。您需要添加.LNKPATHEXT环境变量中以使用 调用快捷方式winexec。此批处理文件可以删除您可以在 stata 中查找的文件以表示它已完成。在 stata 方面,您将使用该fileexists函数然后将其删除并继续。

我可以想出几种解决这个问题的好办法,但现在已经很晚了,我早上还要去上班。你需要winexec自己想办法解决。如果我想到一个好办法……我会补充进来。

如有任何疑问,请随时发表评论。

这是最愚蠢的想法!
Stata 是一款付费程序。它的价格贵得吓人,网站上你能做的最好的事情就是“请求报价”来了解价格。寻求支持!那些家伙比编写它的开发人员更懂得如何破解他们自己的垃圾。相信我,我做了多年的支持。如果有人知道,他们知道并且可能会很乐意提供帮助。

相关内容