[.NET] 呼叫外部程序 引數 複數+空白

看板Visual_Basic作者 (ご注文はうさぎですか)時間11年前 (2014/06/17 01:35), 編輯推噓1(1016)
留言17則, 3人參與, 最新討論串1/2 (看更多)
如題 使用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

06/17 03:44, , 1F
雙引號之間為字串,有空格的路徑要用雙引號括起來
06/17 03:44, 1F

06/17 03:45, , 2F
所以在字串裡面打雙引號會被認為是前一個雙引號的結尾
06/17 03:45, 2F

06/17 03:46, , 3F
要告訴編譯器我要打雙引號這個字元就必須使用跳脫字元
06/17 03:46, 3F

06/17 03:46, , 4F
反斜線加上某些字元稱為跳脫字元
06/17 03:46, 4F

06/17 03:48, , 5F
要在一個字串裡面打雙引號,如果寫成""",編譯器會
06/17 03:48, 5F

06/17 03:49, , 6F
認為前面兩個雙引號組成一個字串,所以要打雙引號字元
06/17 03:49, 6F

06/17 03:50, , 7F
要在前面加上反斜線,跟編譯器說我是要打雙引號這個
06/17 03:50, 7F

06/17 03:50, , 8F
字元,而不是字串的開頭或結尾
06/17 03:50, 8F

06/17 03:52, , 9F
Ex. "\"C:\Program Files\""
06/17 03:52, 9F

06/17 03:52, , 10F
第一個"代表字串的開頭,第一個\"代表雙引號字元
06/17 03:52, 10F

06/17 03:53, , 11F
第二個\"代表雙引號這個字元,最後面的"代表字串結尾
06/17 03:53, 11F

06/17 10:53, , 12F
感謝樓上回應,跳脫字元的概念在正規裡面有遇過所以
06/17 10:53, 12F

06/17 10:53, , 13F
可以理解,可是有點無法理解如果加上空白會變什麼樣子
06/17 10:53, 13F

06/17 10:54, , 14F
像是"\ "好像也不會把空白跳脫?
06/17 10:54, 14F

06/17 10:54, , 15F
如果原本是"A B C D E"要分三組
06/17 10:54, 15F

06/17 10:54, , 16F
是寫成"\"A\" \"B\" \"C D E\"" 嗎
06/17 10:54, 16F

06/17 12:50, , 17F
非常幽默。
06/17 12:50, 17F
文章代碼(AID): #1JdohA-h (Visual_Basic)
文章代碼(AID): #1JdohA-h (Visual_Basic)