我試圖調用使用工藝外部程序:vb.net如何使用空格的字符串傳遞給命令行
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)
等多種組合方式,但它仍然給我一個錯誤。關於如何讓這個工作的任何想法? TIA
P.S.我也試過單引號... – Chiwda
我被迫用「_」(下劃線)替換空格來解決這個問題。但是因爲目錄名也可以有空格,所以我必須先將文件名與目錄名分開,用「_」(下劃線)而不是「」來重命名該文件,然後添加目錄名,然後運行mktorrent。這工作,因爲我正在改變工作目錄到我正在torrenting的文件,所以路徑變得無關緊要。多麼愚蠢的黑客! :-( – Chiwda