是批处理文件,不像shell脚本那样可执行
are batch files NOT executable unlike shell scripts?
我使用boost.process
运行具有某些给定输入的外部进程。用户可以指定外部进程。所以大多数时候用户指定一个shell脚本或批处理脚本。
我只是在做boost::process::launch(_script, arguments, context);
,它既可以运行真正的可执行文件,也可以运行shell脚本,只要它们是可执行的(+x)。但是当我在windows中运行它时。它不工作,如果我在_script
传递批处理文件,但它工作,如果我指定一个真正的可执行文件。
这让我认为,在Windows批处理脚本不是可执行的吗?它们只是通过cmd.exe进行解释!
我可以启动cmd.exe
并将/c _script argv
指定为命令行参数。但这不是跨平台的。
和我不想让system()
调用,因为我将无法完全控制创建的进程?
没错,批处理文件不能直接执行,需要命令处理程序来运行。
也就是说,解决可移植性问题应该相当简单,可以在编译时(通过预处理器宏)或运行时(特定于windows的环境变量??)
我可能会选择前者,因为前者更健壮。
相关文章:
- 如何将不同的可执行文件合并到一个窗口框架中进行编码?像浏览器一样
- 如何使 windows 命令提示符在C++可执行文件上显示返回值?
- CMake:如何将库 A 链接到库 B,然后将可执行文件链接到库 A
- 如何使字符串出现在编译的二进制可执行文件的开头?
- 程序在使用 system() 启动另一个可执行文件时停止
- 如何更改使用 CPack 安装的可执行文件的名称?
- 在Linux上使用Clang / OLLVM交叉编译helloworld Windows可执行文件时的问题
- CMake:我们可以为一组不形成可执行文件或库的特定文件指定包含目录吗?
- 如何将图像传入C++可执行文件并将输出图像存储在新目录中?
- 共享库 (.so) 没有扩展名的 Linux 可执行文件之间的区别?
- 如何在 linux 可执行文件中使用静态库
- 在使用PyInstaller冻结Python脚本时包含一个C++可执行文件
- 如何使用gnu_parallal以运行多个可执行文件和/或bash脚本
- 可视化 将 c++ 可执行文件图标添加到预制件 5 构建脚本
- 将输入值从BASH脚本传递到C 可执行文件
- 将Python脚本作为可执行文件的最佳方式
- Php脚本编译c++文件和运行可执行文件与输入文件
- 如何在VS2015中开始调试之前运行一个脚本可执行文件
- 如何在自定义shell中检测脚本文件与可执行文件
- 是批处理文件,不像shell脚本那样可执行