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

标签 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.

我的代码位于 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# 删除非法字符的方法,有什么想法吗?

最佳答案

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

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

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

关于c# - 不要从路径名 C# 中删除字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7615883/

相关文章:

c# - 将 LinqKit PredicateBuilder 用于相关模型 (EF Core)

string - 在 Haskell 中比较两个字符串

javascript - 需要一个正则表达式来拆分 javascript 中的字符串

git - 如何使用 git log --since 产生可靠的结果

c - 当用户键入 ./a.out -n 时,我怎么知道 n(正整数)是多少?

c# - 如何更改 GraphicsPath 内的点的坐标?

c# - 使用 "@"符号连接字符串中的变量

c# - 如何 : Taking photos in windows mobile without CameraCaptureDialog?

python - 生成不在字符串列表中的子字符串列表

java - 如何使用 Apache Commons CLI 解析属性文件和 --help 选项?