我编写了一个控制台应用程序,我们希望通过调度程序安排在一夜之间运行,但是当它启动时,它需要用户输入一个文件路径字符串,该字符串指向数据库。如何编写此批处理文件?
我拥有的是:
Console.WriteLine("DataBase file path:");
source = Console.ReadLine();
我需要自动化源代码并运行程序。
例如:
source = "C:\Users\Documents\New folder\data.mdb"
谢谢!
修改
我们希望有两种方式来运行这个程序,一个是自动的,一个是手动的, 如果有人对如何做到这一点有任何其他想法,我愿意接受建议!
好的另一个编辑:
我有一个程序需要一个用户输入文件路径的字符串,该文件路径指向数据库。
我们想通过调度程序在一夜之间运行这个程序,并且有一个预设的文件路径字符串,可以作为用户输入。
我们还希望能够运行程序并自己输入文件路径字符串,因此硬编码不是一种选择。
我们也希望能够通过命令提示符
运行该程序所以我想制作2个不同的批处理文件,一个有预设输入,一个没有,我只是不知道如何进行预设输入。
如果有人有建议请帮助
谢谢
答案 0 :(得分:2)
如果我明白你的意思是将参数传递给批处理文件中的exe就像这样:
yourApp.exe "C:\Users\Documents\New folder\data.mdb"
然后在您的应用中,您可以检查是否没有传递参数,请用户输入路径:
static void Main(string[] args)
{
if (args.Length == 0)
{
答案 1 :(得分:0)
解释您要找的内容的一种可能方式是"input redirection"
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();
}
答案 2 :(得分:0)
我仍然认为完全不需要批处理文件。 你可以用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