[英]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.