我有以下命令在Perl中正常工作
my $bugcmd = `"C:\\Program Files (x86)\\McAfee\\VirusScan Enterprise\\scan32.exe"
$source /all /archive /loguser /prompt /log $path$itemID.txt /autoexit`;
然而在C#中,我不能为我的生活在C#中创建一个日志文件该死的东西它扫描它只是没有创建日志,任何帮助将不胜感激。
string log = txtSource.Text + itemID + ".txt";
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = @"C:\Program Files (x86)\McAfee\VirusScan Enterprise\scan32.exe";
startInfo.Arguments = drive + " /all /archive /loguser /prompt /autoexit /log" + log;
Process.Start(startInfo);
调试器中的路径和itemID看起来很好。 C:\ TEMP \ itemID.txt
答案 0 :(得分:1)
使用string.Format
可能有助于揭示问题所在(您在\log
之后错过了一个空格)。我认为这可能有所帮助:
startInfo.Arguments =
string.Format("{0} /all /archive /loguser /prompt /autoexit /log {1}", drive, log);
如果您从.config或其他您无法控制的地方读取日志路径,确保日志路径也被引号包围,这是个好主意。因为它可能有空格。这可能也适用于drive
?
处理这种情况:
startInfo.Arguments =
string.Format("\"{0}\" /all /archive /loguser /prompt /autoexit /log \"{1}\"",
drive, log);