繁体   English   中英

如何在Process.Start()中通过cmd.exe运行cmd.exe和大量开关

[英]How to run cmd.exe and a lot of switches via cmd.exe in Process.Start()

与上一个问题类似,我有时会在cmd.exe上运行此命令:

Rundll32 Printui.dll,PrintUIEntry /ia /K /q /m "SHARP MX-5500N PS" /h "Windows NT x86" /v 3 /f sn0hwenu.inf

如果我想通过Process.Start()运行它,PrintUIEntry的所有内容都是文件名和其余的参数吗? 我是否需要在上面的字符串前面连接cmd.exe(无论如何我都假设是),如果是这种情况,则是文件名和其余参数。 这里有任何经验法则吗?

谢谢

文件名应为Rundll32.exe Printui.dll等是参数。 你不需要cmd.exe ,因为rundll32是它自己的程序。

您可以使用ProcessStartInfo指定要运行的文件(rundll32),使用Arguments属性指定要使用的参数。 它不是数组,而是字符串。

startInfo.Arguments =“/ x / y / z”;

您不需要cmd.exe,因为您正在启动一个将成为rundll32的进程,该进程不需要cmd来托管它。

ProcessStartInfo startInfo = new ProcessStartInfo();
    startInfo.FileName = "rundll32.EXE";
    startInfo.Arguments = "Printui.dll,PrintUIEntry /ia /K /q /m "SHARP MX-5500N PS" /h "Windows NT x86" /v 3 /f sn0hwenu.inf";
    Process.Start(startInfo);

请注意,您可能需要在引号中包装参数(看起来您已经在做了)。 例如,如果你给路径c:\\ Program Files ...你需要将它包装在引号中,否则在尝试运行进程时会出错

startInfo.Arguments = "\"c:\\Program Files\\...\"";

另请注意,单独指定rundll32.exe可能不起作用。 我不确定process.Start是否使用PATH环境变量来解析文件,因此您可能需要提供rundll32.exe的完整路径

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM