我正在尝试使用Process调用外部程序:
Dim strExe As String = "E:\Projects\Common Files\mktorrent.exe"
Dim p As New Process
Dim pinfo As New ProcessStartInfo
pinfo.UseShellExecute = False
pinfo.RedirectStandardOutput = True
pinfo.Arguments = " -a http://blah.com/announce.php -l " & FileSizeMarker & " " & fn
pinfo.FileName = strExe
pinfo.WorkingDirectory = fn.Substring(0, fn.LastIndexOf("\"))
pinfo.WindowStyle = ProcessWindowStyle.Normal
pinfo.CreateNoWindow = True
p.StartInfo = pinfo
p.Start()
问题出在文件名(上面的变量fn)上。如果文件名有空格,该命令将会失败 - 没有空格则正常工作。我尝试添加1、2或3个引号,例如:
fn = Chr(34) & Chr(34) & Chr(34) & fn & Chr(34) & Chr(34) & Chr(34)
并且
fn = "\") & Chr(34) & fn & "\"& Chr(34)
还有许多其他组合,但仍然会出现错误。您有什么想法,如何让它正常工作?谢谢您!