批处理文件,将文件路径的一行输入馈送到.exe并运行程序



我编写了一个控制台应用程序,我们希望通过调度程序安排它通宵运行,但是当它启动时,它需要用户输入指向数据库的文件路径字符串。我将如何写入此批处理文件?

我拥有的是:

Console.WriteLine("DataBase file path:");
source = Console.ReadLine();

我需要自动化源代码并运行程序。

例如:

 source = "C:UsersDocumentsNew folderdata.mdb"

谢谢!

编辑

我们希望有两种方法来运行该程序,一种是自动的,一种是手动的,如果有人对如何做到这一点有任何其他想法,我愿意接受建议!

好的另一个编辑:

我有一个程序,需要一串指向数据库的文件路径的用户输入。

我们希望通过调度程序在一夜之间运行此程序,并有一个预设的文件路径字符串,该字符串将作为用户输入。

我们还希望能够运行程序并自己输入文件路径字符串,因此硬编码不是一种选择。

我们还希望能够通过命令提示符运行此程序

所以我正在考虑制作 2 个不同的批处理文件,一个带有预设输入,一个没有,我只是不知道如何进行预设输入。

如果有人有建议,请帮忙

谢谢

如果我明白你的意思,将参数传递给批处理文件中的exe是这样的:

yourApp.exe "C:UsersDocumentsNew folderdata.mdb"

然后在您的应用中,您可以检查是否没有传递任何参数,要求用户输入路径:

static void Main(string[] args)
        {
            if (args.Length == 0)
            {

解释您正在寻找的内容的一种可能方法是"输入重定向"

 myProgram.exe < myInput

或者您可能正在寻找使用 CMD 解析某些输入文件并获取第一行的一部分 - for是在 CMD 文件中执行此操作的方法。

请注意,通常参数作为Main参数传递,例如

static int Main(string[] args)
{
    string source;
    if (args.Length == 1)
      source = args[0];
    else
      source = Console.ReadLine();
}

我仍然认为绝对不需要批处理文件。你可以从 C# 完成所有操作:

class Program
{
    static void Main(string[] args)
    {
        string inputFile = null;
        if (args.Length > 0 && args[0].Length > 0)
        {
            inputFile = args[0];
        }
        else
        {
            Console.WriteLine("No command-line input detected. Please enter a filename:");
            inputFile = Console.ReadLine();
        }
        Console.WriteLine("Beginning Operation on file {0}", inputFile);
        /* Do Work Here */
    }
}

运行示例:

C:> myProgram.exe  data.mdb
Beginning Operation on file data.mdb

C:> myProgram.exe
No command-line input detected. Please enter a filename:
OtherData.mdb   // <-- typed by user at keyboard
Beginning Operation on file OtherData.mdb

相关内容

  • 没有找到相关文章

最新更新