不要从路径名C#中删除字符

KPS*_*KPS 1 c# string command-line-arguments

我有一个Windows窗体应用程序,它也采用命令行参数.你可以自己运行程序,它有一个GUI但是当你在CLI中运行它时,似乎C#从我的论点中删除了一些字符,我提供它.

这是它的工作原理:

RemoveHTML.exe http://illen/configtc.aspx?IP = 192.168.0.15&m = c

该应用程序加载但崩溃,因为C#删除了URL的最后一部分!所以它真正看到的是

RemoveHTML.exe http://illen/configtc.aspx?IP = 192.168.0.15

它删除了"&m = c"部分,在我的CLI中出现此错误:

C:\Users\admin\Documents\Visual Studio 2010\Projects\RemoveHTML\RemoveHTML\bin\Debug>RemoveHTML.exe http://illen/configtc.aspx?IP=192.168.0.15 
'm' is not recognized as an internal or external command,operable program or batch file.
Run Code Online (Sandbox Code Playgroud)

我的代码位于Form1_Load部分,它是:

string MyURL;
string[] WebURL;
Run Code Online (Sandbox Code Playgroud)

......

        private void Form1_Load(object sender, EventArgs e)
        {

            string[] args = Environment.GetCommandLineArgs();
            foreach (string arg in args)
            {

                WebURL[0] = args[1];
                //WebURL[0] += "&m=c";
                //WebURL[0] += (WebURL[0] + "&m=c");
                //WebURL = args[1];
                //MessageBox.Show(WebURL);
                runtimeButton_Click(sender, e);
            }
}
Run Code Online (Sandbox Code Playgroud)

我试图找到一种方法,没有C#删除非法字符,任何想法?

Dan*_*ite 5

在调用您的应用程序时,请将URL放在引号中.

RemoveHTML.exe "http://illen/configtc.aspx?IP=192.168.0.15&m=c"
Run Code Online (Sandbox Code Playgroud)

它不是.NET或C#的限制.它是命令解析器的工作方式.