微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从托pipe的脚本中closures父级cmd控制台窗口?

我在registry中使用以下命令在Windows资源pipe理器的上下文菜单中本地运行vbscript:

cmd /T:1F /K "cscript.exe //nologo "C:Some PathSome FolderMyScript.vbs" "%1""

我使用/K开关有两个原因:在脚本错误的情况下保持控制台窗口打开,并改变控制台的背面和背景颜色(这实际上是通过/T开关完成的,但出于某种原因我不明白,当使用/C开关时,颜色恢复为认值。

我的问题:如何closures正常执行结束的主机控制台窗口(附加到“cmd.exe”进程)? WScript.Quit显然返回到控制台提示符。 我想到了一个基于CommandLine的Win32_Process的WMI查询,但是如果使用相同的参数(即文件)多次调用该脚本,那么这将不起作用。 有没有办法获得最顶级的父进程的ID例如,我可以用来终止?

如何将命令的输出redirect到名称以&(&符号)开头的文件

如何从cmd.exe打开指定目录中的资源pipe理器窗口?

如何将计数添加到bat文件的末尾

任务调度程序多语言参数

批量命令查找/replace文件内的文本

设置线程/ proc / PID / cmdline?

如何在Windows中设置Erlang环境variables,特别是ERL_MAX_PORTS?

从嵌套的batch file中退出

命令脚本退出代码没有看到同一行&&或||?

如何检查文件扩展名,并相应地打开Windowsbatch file中的认程序

我相信你可以简单地追加&&exit到你的命令字符串:

cmd /T:1F /K "cscript.exe //nologo "C:Some PathSome FolderMyScript.vbs" "%1"&&exit"

请注意,由于多余的引号,引用的参数不被引用。 你可能会更好:

cmd /T:1F /K ^"cscript.exe //nologo "C:Some PathSome FolderMyScript.vbs" "%~1"^&&exit^"

更新

脚本引擎在运行时错误时不会设置退出代码 – 它将该任务留给脚本编写者。 如果有语法错误,它会设置一个正面的退出代码。 这是一个非常不幸的设计。

我认为最简单的做法是修改你的VBS脚本,在成功时总是以负值退出: WScript.Quit -1 。 然后,只有退出代码为负时,才能有条件地退出控制台。

cmd /T:1F /K ^"cscript.exe //nologo "C:Some PathSome FolderMyScript.vbs" "%~1"^||if not errorlevel 0 exit^"

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐