【问题标题】:Do not remove characters from path name C#不要从路径名 C# 中删除字符
【发布时间】:2011-11-28 18:36:51
【问题描述】:

我有一个带有命令行参数的 Windows 窗体应用程序。您可以单独运行该程序,它有一个 GUI,但是当您在 CLI 中运行它时,C# 似乎从我提供给它的参数中删除了一些字符。

这就是它的工作原理:

删除HTML.exe http://illen/configtc.aspx?IP=192.168.0.15&m=c

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

删除HTML.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.

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

string MyURL;
string[] WebURL;

......

        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);
            }
}

我正在尝试找到一种不让 C# 删除非法字符的方法,有什么想法吗?

【问题讨论】:

    标签: c# string command-line-arguments


    【解决方案1】:

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

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

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

    【讨论】:

    • +1。与号是 CMD 的命令分隔符(它允许一个接一个地运行多个命令)。查看 CMD/?获取完整的字符列表,让您在参数周围加上引号。
    猜你喜欢
    • 1970-01-01
    • 2011-04-22
    • 1970-01-01
    • 2019-03-04
    • 1970-01-01
    • 2010-09-13
    • 1970-01-01
    • 1970-01-01
    • 2011-04-09
    相关资源
    最近更新 更多