【发布时间】:2019-06-17 19:14:58
【问题描述】:
我需要使用 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.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;
}
}
【问题讨论】:
-
I) 可能存在权限问题。 ii) 请确保所有路径等拼写正确,即使是很小的差异也会导致失败。
-
谢谢!,是的,命令是正确的,我通过从 Debug-Watch 获取值来验证它,并在命令提示符下手动运行它。有效。运行 C# 代码时,我得到了一个 Windows 权限对话框来授予运行我授予的命令的权限。在临时文件中获取输出没有运气
标签: c# system.diagnostics processstartinfo