我有一个二进制文件: temp.exe
此二进制文件 ( temp.exe ) 采用两个命令行参数a
和b
.
我还有一个文件agrsList.txt
,其中包含:
a1 b1
a2 b2
a3 b3
: :
: :
an bn
现在,我想将此文件的每一行作为参数传递给二进制文件。
PS:我无权访问源代码,因此我可以编辑代码并使其读取文件。
有没有办法解决这个问题(不写脚本)。
您可以使用
xargs -rn 2 temp.exe < agrsList.txt
仅当有参数时才运行该-r
方法。temp.exe
该-n 2
装置temp.exe
最多使用两个参数运行。如果 中有奇数个单词agrsList.txt
,则将temp.exe
只使用一个参数运行,即最后一个。
有关详细信息,请参阅man xargs。
这种简单的事情通常最好由“脚本”语言处理,但在 C++ 中也很简单。如果您正在从标准中读取文件:
std::string args;
while ( std::getline( std::cin, args ) ) {
system( ("temp " + args).c_str() );
}
应该是你所需要的。temp
(但你没有说如果失败了你想做什么。)