[.NET] 呼叫外部程序 引数 复数+空白

楼主: KawasumiMai (さあ、死ぬがいい)   2014-06-17 01:35:03
如题
使用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上一堆 "\" """ 之类的穿插有看没有懂
作者: putumaxally (putumaxally)   2014-06-17 03:44:00
双引号之间为字串,有空格的路径要用双引号括起来所以在字串里面打双引号会被认为是前一个双引号的结尾要告诉编译器我要打双引号这个字符就必须使用跳脱字符反斜线加上某些字符称为跳脱字符要在一个字串里面打双引号,如果写成""",编译器会认为前面两个双引号组成一个字串,所以要打双引号字符要在前面加上反斜线,跟编译器说我是要打双引号这个字符,而不是字串的开头或结尾Ex. "\"C:\Program Files\""第一个"代表字串的开头,第一个\"代表双引号字符第二个\"代表双引号这个字符,最后面的"代表字串结尾
楼主: KawasumiMai (さあ、死ぬがいい)   2014-06-17 10:53:00
感谢楼上回应,跳脱字符的概念在正规里面有遇过所以可以理解,可是有点无法理解如果加上空白会变什么样子像是"\ "好像也不会把空白跳脱?如果原本是"A B C D E"要分三组是写成"\"A\" \"B\" \"C D E\"" 吗
作者: MOONRAKER (㊣牛鹤鳗毛人)   2014-06-17 12:50:00
非常幽默。

Links booklink

Contact Us: admin [ a t ] ucptt.com