-3

我有一个二进制文件: temp.exe

此二进制文件 ( temp.exe ) 采用两个命令行参数ab.

我还有一个文件agrsList.txt,其中包含:

a1 b1
a2 b2
a3 b3
:  :
:  :
an bn

现在,我想将此文件的每一行作为参数传递给二进制文件。

PS:我无权访问源代码,因此我可以编辑代码并使其读取文件。

有没有办法解决这个问题(不写脚本)

4

2 回答 2

2

您可以使用

    xargs -rn 2 temp.exe < agrsList.txt

仅当有参数时才运行该-r方法。temp.exe-n 2装置temp.exe最多使用两个参数运行。如果 中有奇数个单词agrsList.txt,则将temp.exe只使用一个参数运行,即最后一个。

有关详细信息,请参阅man xargs

于 2013-09-02T09:30:21.360 回答
0

这种简单的事情通常最好由“脚本”语言处理,但在 C++ 中也很简单。如果您正在从标准中读取文件:

std::string args;
while ( std::getline( std::cin, args ) ) {
    system( ("temp " + args).c_str() );
}

应该是你所需要的。temp(但你没有说如果失败了你想做什么。)

于 2013-09-02T08:35:36.623 回答