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

C#中Process.StartInfo.Arguments参数解析异常求助

问题原因与解决方案

核心问题:参数中的短横线符号不一致

你的代码里构建的DScmd字符串混用了两种不同的短横线符号:

  • 正确的半角减号(ASCII码45):比如-h、-L中的-
  • 全角破折号(Unicode U+2013):比如–b60K、–d60中的–

命令行执行时,系统会自动兼容处理这种符号差异,但C#的Process类会严格按字符串拆分参数,diskspd.exe无法识别全角破折号开头的参数,就把这些内容当成要测试的路径处理,导致错误。

修复步骤

把所有全角破折号–替换成半角减号-即可,修改后的代码片段如下:

if (rdoOLTP.Checked)
{
    DScmd = "-b8K -d180 -h -L -o32 -t3 -r -w75 -c5G " + qPath;
}
else
{
    DScmd = "-b60K -d60 -h -L -o32 -t1 -s -w100 -c1G " + qPath;
}

额外注意点

  • 当UseShellExecute = false时,Process不会通过shell解析参数,所以符号必须严格匹配程序要求的格式
  • 你用string.Format("\"{0}\"", txtDatPath.Text)给路径包裹引号的处理是正确的,无需调整

内容的提问来源于stack exchange,提问作者Gary P.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 06:45:42