加入收藏 | 设为首页 | 会员中心 | 我要投稿 济南站长网 (https://www.0531zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Windows > 正文

是否有Windows CMD相当于Unix shell的exec?

发布时间:2021-01-25 13:12:20 所属栏目:Windows 来源:网络整理
导读:Windows中有没有与Unix Shell的“exec”相同的东西?基本上,我需要避免分支新进程,以便保留输入/输出管道以及进程ID. 编辑: 所以,这是我的问题.我有一个启动脚本的进程A,这个脚本以执行进程B结束.我需要A来获取B的所有输出,并且能够通过杀死它产生的进程

Windows中有没有与Unix Shell的“exec”相同的东西?基本上,我需要避免分支新进程,以便保留输入/输出管道以及进程ID.

编辑:

所以,这是我的问题.我有一个启动脚本的进程A,这个脚本以执行进程B结束.我需要A来获取B的所有输出,并且能够通过杀死它产生的进程来杀死B(脚本) .

在Unix上,用exec执行B可以完成这项工作.

AFAIK没有. Windows缺少execv(),这就是bash exec的工作方式. call用于调用批处理文件(简单,只需解释当前解释器中的文件,类似于bash的.命令),但不适用于exes.

这使得无法为Windows上的任何语言的脚本编写单行封装脚本.你会一直得到“终止批处理工作吗?”在Ctrl C上废弃并杀死批处理进程(不是使用Ctrl C,来自任务管理器说)不会终止子进程.我现在正在寻找一个C模板文件来完成这个包装.

更新:Windows在MSVCRT的POSIX兼容层中确实有_execv(),但AFAIK(尚未测试过)它只是CreateProcess的一个包装器,所以它总是会创建一个新进程,它不能取代当前进程.

(编辑:济南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!