看板 Visual_Basic 關於我們 聯絡資訊
如題 使用System.Diagnostics.Process.Start()呼叫外部程序 要帶入引數時 需要Start(".exe","args") 如果要複數的時候 則使用空白分隔 如Start(".exe","arg1 arg2") 那如果本身引數也有空白呢?(如路徑) 試過拆開宣告 Dim hPsInfo As New System.Diagnostics.ProcessStartInfo() hPsInfo.FileName = ".exe" hPsInfo.Arguments = "A B C D E" 但是這樣寫他會視為5個引數 如果要弄成三個引數 "A" "B" "C D E" 要怎麼寫? Google上一堆 "\" """ 之類的穿插有看沒有懂 -- ▍▃▄▅▅▅▃▁『われ刃向けるはアヤカシのみ。 " ▃ ▊  吾斬り伏せるはアヤカシのみ。 。 . ▎◥ は... ▄▂▁ 魔物を討つ者だから...』 ▇▆▄▂▅▂ ◣ ◢ ψKawasumiMai ′′ ▄▄▄川澄 舞 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.42.116.130 ※ 文章網址: http://www.ptt.cc/bbs/Visual_Basic/M.1402940106.A.FAB.html
putumaxally:雙引號之間為字串,有空格的路徑要用雙引號括起來 06/17 03:44
putumaxally:所以在字串裡面打雙引號會被認為是前一個雙引號的結尾 06/17 03:45
putumaxally:要告訴編譯器我要打雙引號這個字元就必須使用跳脫字元 06/17 03:46
putumaxally:反斜線加上某些字元稱為跳脫字元 06/17 03:46
putumaxally:要在一個字串裡面打雙引號,如果寫成""",編譯器會 06/17 03:48
putumaxally:認為前面兩個雙引號組成一個字串,所以要打雙引號字元 06/17 03:49
putumaxally:要在前面加上反斜線,跟編譯器說我是要打雙引號這個 06/17 03:50
putumaxally:字元,而不是字串的開頭或結尾 06/17 03:50
putumaxally:Ex. "\"C:\Program Files\"" 06/17 03:52
putumaxally:第一個"代表字串的開頭,第一個\"代表雙引號字元 06/17 03:52
putumaxally:第二個\"代表雙引號這個字元,最後面的"代表字串結尾 06/17 03:53
KawasumiMai:感謝樓上回應,跳脫字元的概念在正規裡面有遇過所以 06/17 10:53
KawasumiMai:可以理解,可是有點無法理解如果加上空白會變什麼樣子 06/17 10:53
KawasumiMai:像是"\ "好像也不會把空白跳脫? 06/17 10:54
KawasumiMai:如果原本是"A B C D E"要分三組 06/17 10:54
KawasumiMai:是寫成"\"A\" \"B\" \"C D E\"" 嗎 06/17 10:54
MOONRAKER:非常幽默。 06/17 12:50