作者KawasumiMai (ご注文はうさぎですか)
看板Visual_Basic
標題[.NET] 呼叫外部程序 引數 複數+空白
時間Tue Jun 17 01:35:03 2014
如題
使用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://webptt.com/m.aspx?n=bbs/Visual_Basic/M.1402940106.A.FAB.html
1F:推 putumaxally:雙引號之間為字串,有空格的路徑要用雙引號括起來 06/17 03:44
2F:→ putumaxally:所以在字串裡面打雙引號會被認為是前一個雙引號的結尾 06/17 03:45
3F:→ putumaxally:要告訴編譯器我要打雙引號這個字元就必須使用跳脫字元 06/17 03:46
4F:→ putumaxally:反斜線加上某些字元稱為跳脫字元 06/17 03:46
5F:→ putumaxally:要在一個字串裡面打雙引號,如果寫成""",編譯器會 06/17 03:48
6F:→ putumaxally:認為前面兩個雙引號組成一個字串,所以要打雙引號字元 06/17 03:49
7F:→ putumaxally:要在前面加上反斜線,跟編譯器說我是要打雙引號這個 06/17 03:50
8F:→ putumaxally:字元,而不是字串的開頭或結尾 06/17 03:50
9F:→ putumaxally:Ex. "\"C:\Program Files\"" 06/17 03:52
10F:→ putumaxally:第一個"代表字串的開頭,第一個\"代表雙引號字元 06/17 03:52
11F:→ putumaxally:第二個\"代表雙引號這個字元,最後面的"代表字串結尾 06/17 03:53
12F:→ KawasumiMai:感謝樓上回應,跳脫字元的概念在正規裡面有遇過所以 06/17 10:53
13F:→ KawasumiMai:可以理解,可是有點無法理解如果加上空白會變什麼樣子 06/17 10:53
14F:→ KawasumiMai:像是"\ "好像也不會把空白跳脫? 06/17 10:54
15F:→ KawasumiMai:如果原本是"A B C D E"要分三組 06/17 10:54
16F:→ KawasumiMai:是寫成"\"A\" \"B\" \"C D E\"" 嗎 06/17 10:54
17F:→ MOONRAKER:非常幽默。 06/17 12:50