我一直在网上冲浪很长时间,我甚至没有接近任何解决方案。对不起,如果对专家来说似乎微不足道。
我有一个C ++代码,它将二进制文件作为输入参数,然后进行一些计算然后输出.csv
文件。
所以,我一直在使用命令行在一个或多个文件上执行代码,如下所示
MyProgram filename1 filename2
就我而言,我的所有文件都来自特定文件夹中的filename1
到filenameN
。
我想知道是否有任何方法可以输入文件夹名称,因此程序将在所有包含的文件上执行。
也许是这样的
Myprogram /Users/Whatever
或在像
这样的窗口中Myprogram C:\User\Whatever
提前致谢
答案 0 :(得分:1)
对于linux,您可以使用带有狂野字符参数的命令行,例如:YourProgram path/to/*.csv
,并且您将所有文件与模式path/to/*.csv
匹配到argv数组中。
如果是Windows,您可以使用一些Win API,如FindFirstFile,FindNextFile来解析通配符并获取所有匹配文件。 you can also check this example:
答案 1 :(得分:1)
在基于* nix的控制台上,“xargs”命令是你的朋友。例如
find ./MyDirectory -name "*.notcsv" | xargs myprogram
就个人而言,我不会修改代码本身来迭代文件,因为操作系统提供了一种机制。它使您的计划更“单一责任”。如果将输出发送到stdout / cout,它允许程序在必要时与其他文本处理命令链接。
干杯