【发布时间】:2015-05-13 17:54:58
【问题描述】:
我需要执行以下命令,它可以完美运行,如果我通过命令提示符执行它,这里的命令行是使用 kodakprv.exe 发送 tiff 文件的打印。
但是当尝试通过 c# 执行它时,它没有抛出任何错误但也没有发送打印,尝试在 SQL 中通过 xp_cmdshell 执行此命令,但它不起作用,在 xp_cmdshell 文档中发现,引号是不允许超过一次,但 kodakprv.exe 打印逻辑需要 3 对引号
请建议我们可以在执行命令时在 C# 中使用多个引号或建议任何更好的解决方案
String sCommand = "\"c:\\progra~1\\imagin~1\\kodakprv.Exe\" /pt \"D:\\SQLDev\\Dlls\\Testing.TIF\" \"\\\\Galactica\\C-Test1\"";
// Put your code here
System.Diagnostics.Process ExecuteCommand = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.FileName = "cmd.exe";
startInfo.UseShellExecute = false;
startInfo.RedirectStandardOutput = true;
startInfo.Arguments = @" /c " + sCommand.ToString();
MessageBox.Show(startInfo.Arguments);
ExecuteCommand.StartInfo = startInfo;
ExecuteCommand.Start();
【问题讨论】:
-
不工作是什么意思?你有例外吗?它的行为与您的预期有何不同?
-
“不工作”不是正确的问题描述。说明您预期会发生什么、会发生什么以及您为解决这些差异而采取的措施。
-
是的,你说得对,实际上这个命令应该发送打印,这里我使用 kodakprv.exe 发送 tiff 文件的打印。在这里我没有得到任何异常或错误,只是命令执行而不发送打印,如果我在正常命令提示符下执行此命令,它可以完美运行。
-
@CodeCaster 我尝试在 SQL 中通过 xp_cmdshell 执行相同的命令,但这也不起作用,我在 xp_cmdshell 文档中看到的是它不允许多次引用,因为我这里需要三对引号,根据 kodakprv.exe 命令行的要求,这就是我尝试 C# 代码的原因,如果它可以工作,将在 SQL 中将其用作 CLR,但现在相同的命令在 C# 中不起作用要么,请建议