【发布时间】:2011-09-10 14:47:46
【问题描述】:
我创建了一个可以读取命令参数的控制台应用程序(使用 Visual Studio 2010)。
调试时,我会解析一些在 Project-> [project name] Properties... -> Debug -> Command line arguments 中设置的测试参数:
上面写着: "参数名1|参数值1" "参数名2|参数值2" "参数名3|参数值3"
我使用以下代码读取参数:
for (Int16 argumentsCount = 0; argumentsCount < args.Length; argumentsCount++)
{
String[] parameterItem = args[argumentsCount].Split('|');
String parameterName = parameterItem[0].ToString();
String parameterValue = parameterItem[1].ToString();
/*code continues*/
}
当我在调试模式下运行应用程序时,它运行良好并且所有参数都被读取。
然后我将应用程序发布到服务器并确保它以正确的权限安装(为了演示的目的,假设它位于 C:\MyApp 上,编译后的代码位于 MyApp.application 中
然后我创建了一个执行应用程序的批处理脚本。 *.BAT 包含以下命令:
"C:\MyApp\MyApp.application" "parametername1|parametervalue1" "parametername2|parametervalue2" "parametername3|parametervalue3"
当我运行批处理时,当应用程序执行时,这种工作方式......但是......我的应用程序没有接收到我的参数。我知道这一点是因为我重新编译并发布了一些代码,以读取接收到的参数数量:
Console.Write("Arguments " + args.Length.ToString());
这显示参数:0
谁能告诉我如何编写批处理脚本来运行应用程序并解析我的参数/命令行参数。
【问题讨论】:
-
/astandard wayofdoingit?
标签: c# console batch-file console-application command-line-arguments