You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在创建新Process时将逗号分隔字符串作为单个参数传入

解决Process传参时逗号分隔字符串被错误拆分的问题

你的问题根源在于对命令行参数的分隔规则理解有误——命令行参数默认是用空格来区分不同参数的,而不是逗号。你现在用逗号把三个参数连在一起,会导致目标程序把整个字符串按逗号拆分成一堆零散参数,而不是你想要的三个完整参数。

要实现预期效果,只需要做两点调整:

  • 用空格分隔三个独立参数
  • 把每个参数用双引号包裹(尤其是当参数包含空格、逗号这类特殊字符时,引号能确保整个字符串被当作单个参数传递)

这里给你修正后的代码,顺便优化了路径拼接的方式(用Path.Combine比直接字符串拼接更安全,能自动处理路径分隔符的问题):

var process = new Process
{
    StartInfo =
    {
        Arguments = string.Format("\"{0}\" \"{1}\" \"{2}\"", 
            item, 
            Path.Combine(storagePath, item), 
            "_id,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,a,b,c,d,e,f,g,h,i,j,k")
    }
};

为什么这样写能解决问题?

  • 双引号\"是C#中转义后的双引号,会被解析为命令行中的实际双引号。命令行解析器看到被双引号包裹的内容时,会把整个包裹部分当作一个独立参数,不管里面有没有逗号、空格这类字符。
  • 参数之间用空格分隔,这是命令行参数的标准分隔逻辑,能让目标程序准确识别出三个独立参数:
    1. 第一个参数:item的内容
    2. 第二个参数:storagePath + item的完整路径(Path.Combine确保路径格式正确)
    3. 第三个参数:包含所有逗号的完整字符串

如果你的目标程序有特殊的参数解析规则(比如强制用逗号分隔参数),那可能需要再调整,但根据你的预期需求,上面的写法完全能满足要求。

内容的提问来源于stack exchange,提问作者Nivrutti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 06:48:42