c# - 无法使用c#运行命令
问题描述
我需要使用 C# 在 TXL 命令下运行。基本上我只是运行一个命令并将输出存储在 temp.grm 中。如果我在 cmd 中运行此命令,它工作正常,这意味着该命令没有错误。
问题是当我尝试使用 C# 程序运行此命令时,它只会创建一个空白 temp.grm。谁能帮我解决这个问题。谢谢!
命令:txl -q C:\Users\karth\Desktop\TXL\java.grm C:\Users\karth\Desktop\TXL\Tools\RemoveTxlComments\grm.txl -s 1000 > C:\Users\karth\Desktop\ TXL\Temp\temp.grm
...
/* command = command "txl -q C:\\Users\\karth\\Desktop\\TXL\\java.grm C:\\Users\\karth\\Desktop\\TXL\\Tools\\RemoveTxlComments\\grm.txl -s 1000 > C:\\Users\\karth\\Desktop\\TXL\\Temp\\temp.grm" string*/
public bool ExecuteCommand(string command)
{
try
{
_cmdPrompt.UseShellExecute = true;
_cmdPrompt.WorkingDirectory = _system32;
_cmdPrompt.FileName = _cmdPromptPath;
_cmdPrompt.Verb = "runas";
_cmdPrompt.Arguments = "/c " + command;
_cmdPrompt.WindowStyle = ProcessWindowStyle.Hidden;
Process.Start(_cmdPrompt);
return true;
}
catch (Exception e)
{
_logger.LogMessage(e.Message + _newLine);
return false;
}
}
解决方案
的值中command
有空格。该/c
参数只会使用下一个参数作为要执行的命令,因此它将忽略第一个空格之后的所有内容。假设要执行的命令中没有引号,用引号括起来应该可以解决它:
_cmdPrompt.Arguments = "/c \"" + command + "\"";
推荐阅读
- javascript - 为什么 youtube 视频无法加载
- java - 排序哪个字符串比使用 If Else 循环更简单的方法?
- python - 函数的尾递归
- laravel - 使用 laravel 支付
- tensorflow - 如何提高实时对象检测 API 的输入视频的分辨率?
- r - 有没有更优雅的方法可以将 88 个级别的变量折叠为 5 个级别的变量?
- javascript - 如何修复 $injector:modulerr?
- python-3.x - 如何获得每个组/模型的系数/截距,以便绘制每个组的拟合线?
- java - 如何修复 Android Studio 中预期的“‘类’或‘界面’
- nginx - 我可以在 kubernetes 中使用 nginx 入口控制器 oauth2_proxy 和没有 cookie 的天蓝色活动目录吗