使用来自同一文件夹的文件自动多次运行应用程序

使用来自同一文件夹的文件自动多次运行应用程序

我希望这个问题适合这个论坛。

我有一个独立的应用程序 - 一个.exe名为的文件ratingsCalculator.exe。当我手动打开它时,它首先要求我输入与应用程序位于同一文件夹中的 csv 文件的文件名。然后它要求输入一个值 (alpha),然后是第二个值 (beta) - 必须手动输入。输入 beta 值后,它会向我显示已创建输出文件的消息。

此屏幕截图是我调用的一个文件的示例,tennis.csv其中我将 alpha 设置为 .3,将 beta 设置为 .1:

在此处输入图片描述

我想要做的是将许多 csv 文件放在一个文件夹中,每个文件的名称都不同。我想让这个应用程序使用相同的 alpha 和 beta 值运行所有文件。但是,我不想手动执行此操作,因为对于 1000 个 csv 文件来说,这会花费太长时间。

使用 Windows 7,将目录更改为应用程序和文件的位置后,我在命令行中尝试了此操作:

find -name "*.csv" -exec ratingCalculator {} \

不幸的是我收到的错误信息是:

"FIND: Parameter format not correct"

很明显,我无法正确添加参数,这就是我想知道该怎么做。

答案1

给出一个生成 InputTester.exe 的简单 C++ 应用程序:

#include <iostream>
void main() {
    int a,b,c;
    std::cout << "Number 1: ";
    std::cin >> a;
    std::cout << "Number 2: ";
    std::cin >> b;
    std::cout << "Number 3: ";
    std::cin >> c;
}

然后您可以在与上述 exe 相同的位置创建一个 VBS 文件,如下所示:

dim objShell : set objShell = wscript.CreateObject("wscript.shell")
for i = 1 to 10
    objShell.Run "InputTester.exe", 9
    wscript.Sleep 500 
    objShell.SendKeys 1
    objShell.SendKeys "{ENTER}"
    wscript.Sleep 500
    objShell.SendKeys 2
    objShell.SendKeys "{ENTER}"
    wscript.Sleep 500
    objShell.SendKeys i & ".csv"
    wscript.Sleep 500
    objShell.SendKeys "{ENTER}"
next

本质上,它将密钥发送给应用程序。您可以调整循环中提供的睡眠和值,但这可以提供一种解决方案。

参考: https://ss64.com/vb/run.html

相关内容