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