C#分隔参数并将其传递给Process.Start()方法

B先生

我需要将多个参数传递给我的conole应用程序:

1个项目名称

2版本名称

3部署环境名称

4一些布尔

5整数数组

据我所知,我需要运行以下代码:

  string myParams = "Test proj name " + "3.22.652.965863 " + "QA " + "true " + "463841";
        //string cParams = "true ";
        var proc = System.Diagnostics.Process.Start(@"c:\\ MyFolder\bin\Debug\MyApp.exe", myParams);

MyExe.exe入口点具有以下代码:

static void Main(string[] args)
    {

        //Console.WriteLine(Convert.ToBoolean(args[0]));

        string projectName = null;
        string buildNumber = null;
        string deploymentEnvironmentName = null;
        bool shouldResolve = false;
        List<int> ids = new List<int>();


        if (args.Length >= 5)
        {
            for (int i = 0; i < args.Length; i++)
            {
                if (i == 0)
                {
                    Console.WriteLine($"Arg: {i} is {args[i]}");
                    projectName = args[i];
                }
                if (i == 1)
                {
                    Console.WriteLine($"Arg: {i} is {args[i]}");
                    buildNumber = args[i];
                }
                if (i == 2)
                {
                    Console.WriteLine($"Arg: {i} is {args[i]}");
                    deploymentEnvironmentName = args[i];
                }
                if (i == 3)
                {
                    Console.WriteLine($"Arg: {i} is {args[i]}");
                    Console.WriteLine($"Boolean convertion: {args[i]}");
                    shouldResolve = Convert.ToBoolean(args[i]);
                }
                if (i > 3)
                {
                    ids.Add(Convert.ToInt32(args[i]));
                }
            }
            MyService.MyMethod(ids, projectName, buildNumber, deploymentEnvironmentName, shouldResolve);
        }
        else
        {
            throw new Exception("You should define arguments only in following order: Project Name, Build Number, Deployment Environment Name and Array of your Change Sets");
        }

        Console.ReadLine();
    }

我事先不知道我将要拥有多少个整数,但是我需要提前知道其他参数的顺序。但是,我的问题是该System.Diagnostics.Process.Start方法通过空格分隔参数。这意味着我的第一个参数“ Test proj name”不会转换为一个参数,但是会被解析为“ Test”,“ proj”和“ name”。它弄乱了我的代码,我无法指望事先准备好参数。我该如何解决?也许我可以定义自己的分隔符,而忽略空白作为分隔符?我将不胜感激任何帮助或建议。

谢尔盖·卡里尼琴科(Sergey Kalinichenko)

您应该可以通过将参数括在双引号中来解决此问题:

string myParams = "\"Test proj name\" " + "3.22.652.965863 " + "QA " + "true " + "463841";

文档中

包含空格的单个参数必须用引号引起来,但是这些引号不会传递到目标应用程序。

也就是说,您的应用程序将收到Test proj name字符串,且字符串两端不带引号。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

是否可以将对象方法作为参数传递给函数并将其绑定到对象?

来自分类Dev

使用C ++中的方法创建实例并将其传递给Python

来自分类Dev

无法将 PSObject 作为参数传递给 Start-Process

来自分类Dev

如何使Windows START命令通过管道接受标准输入并将其传递给它调用的命令?

来自分类Dev

C#将类作为参数传递给方法,并在其中调用静态方法

来自分类Dev

C#将类作为参数传递给方法,并在其中调用静态方法

来自分类Dev

将空值传递给C#中Object和String作为参数的重载方法

来自分类Dev

C#将通用类作为参数传递给自定义方法

来自分类Dev

让PowerShell脚本使用C#代码,然后将参数传递给Main方法

来自分类Dev

将配置值作为参数传递给实例方法C#

来自分类Dev

Blazor JS互操作程序无法将参数传递给C#方法

来自分类Dev

让PowerShell脚本使用C#代码,然后将参数传递给Main方法

来自分类Dev

如何将通用枚举传递给方法并将其设置为方法内部的动态对象

来自分类Dev

如何将方法传递给指令并将其调用以将数据传递给嵌套指令?

来自分类Dev

F#将C#方法传递给另一个需要Func <>参数的C#方法

来自分类Dev

在类或结构中使用一组字符串常量,并将其用作方法C#的参数

来自分类Dev

获取指向基类的受保护方法的指针,并将其传递给其他类

来自分类Dev

调用对象并将其传递给控制器中的自定义方法

来自分类Dev

如何实例化对象并将其传递给“ using”块的声明中的方法

来自分类Dev

可变地借用struct字段并将其传递给可变方法

来自分类Dev

Java,获取数据并将其传递给另一个类方法

来自分类Dev

调用对象并将其传递给控制器中的自定义方法

来自分类Dev

如何从字符串转义引号和特殊字符并将其传递给JS onClick方法?

来自分类Dev

如何实例化对象并将其传递给“ using”块的声明中的方法

来自分类Dev

如何将方法(多个方法)作为参数传递给继承的void方法或C#中的委托?

来自分类Dev

通过Process.start将大字符串内容作为参数传递给exe

来自分类Dev

如何在System.Diagnostics.Process.Start中将凭据/参数传递给exe

来自分类Dev

传递给 Process.Start 的参数中的字符串编码错误

来自分类Dev

C ++将方法的指针数组作为参数传递给方法

Related 相关文章

  1. 1

    是否可以将对象方法作为参数传递给函数并将其绑定到对象?

  2. 2

    使用C ++中的方法创建实例并将其传递给Python

  3. 3

    无法将 PSObject 作为参数传递给 Start-Process

  4. 4

    如何使Windows START命令通过管道接受标准输入并将其传递给它调用的命令?

  5. 5

    C#将类作为参数传递给方法,并在其中调用静态方法

  6. 6

    C#将类作为参数传递给方法,并在其中调用静态方法

  7. 7

    将空值传递给C#中Object和String作为参数的重载方法

  8. 8

    C#将通用类作为参数传递给自定义方法

  9. 9

    让PowerShell脚本使用C#代码,然后将参数传递给Main方法

  10. 10

    将配置值作为参数传递给实例方法C#

  11. 11

    Blazor JS互操作程序无法将参数传递给C#方法

  12. 12

    让PowerShell脚本使用C#代码,然后将参数传递给Main方法

  13. 13

    如何将通用枚举传递给方法并将其设置为方法内部的动态对象

  14. 14

    如何将方法传递给指令并将其调用以将数据传递给嵌套指令?

  15. 15

    F#将C#方法传递给另一个需要Func <>参数的C#方法

  16. 16

    在类或结构中使用一组字符串常量,并将其用作方法C#的参数

  17. 17

    获取指向基类的受保护方法的指针,并将其传递给其他类

  18. 18

    调用对象并将其传递给控制器中的自定义方法

  19. 19

    如何实例化对象并将其传递给“ using”块的声明中的方法

  20. 20

    可变地借用struct字段并将其传递给可变方法

  21. 21

    Java,获取数据并将其传递给另一个类方法

  22. 22

    调用对象并将其传递给控制器中的自定义方法

  23. 23

    如何从字符串转义引号和特殊字符并将其传递给JS onClick方法?

  24. 24

    如何实例化对象并将其传递给“ using”块的声明中的方法

  25. 25

    如何将方法(多个方法)作为参数传递给继承的void方法或C#中的委托?

  26. 26

    通过Process.start将大字符串内容作为参数传递给exe

  27. 27

    如何在System.Diagnostics.Process.Start中将凭据/参数传递给exe

  28. 28

    传递给 Process.Start 的参数中的字符串编码错误

  29. 29

    C ++将方法的指针数组作为参数传递给方法

热门标签

归档