是否存在转义字符(在字符串声明中使用双引号时)?

时间:2015-11-24 18:27:41

标签: autoit

这是我正在运行的代码:

RunWait("ComSpec & " /c Start 'D:\Program Files (x86)\Pidgin\pidgin.exe'")

我也尝试过没有半引号和引号,但后来我遇到了语法错误。

5 个答案:

答案 0 :(得分:5)

问题是计算机上的文件路径中有空格,需要围绕它进行双引号。

使用双引号从命令提示符处尝试“D:\ Program Files(x86)\ Pidgin \ pidgin.exe”,并确保程序启动。

一旦你知道它的工作原理,就可以将它添加到你的AutoIt代码中(注意它被单引号包围)。

RunWait(@ComSpec & " /c " & '"D:\Program Files (x86)\Pidgin\pidgin.exe"')

答案 1 :(得分:1)

在AutoIt中,只需重复它们就可以转义引号(与批处理/ DOS上相同):

RunWait(@ComSpec & " /c ""Start D:\Program Files (x86)\Pidgin\pidgin.exe""")

答案 2 :(得分:0)

真的不是专家,但看起来代码中的引号数量存在问题

我会尝试这样的事情:

(RunWait(@ComSpec & " /c Start" & "D:\Program Files (x86)\Pidgin\pidgin.exe")

答案 3 :(得分:0)

根据Documentation - FAQ - Double quotes

  

如果你想在字符串中使用双引号,那么你必须“加倍”。因此,对于您想要的每一个引用,您应该使用两个。 ...

     

或使用单引号代替......

示例:

RunWait(@ComSpec & " /c " & """D:\Program Files (x86)\Pidgin\pidgin.exe""")
RunWait(@ComSpec & ' /c ' & '"D:\Program Files (x86)\Pidgin\pidgin.exe"')

但是,不需要“SPECified secondary COMmand interpreter”(或@ComSpec),也不需要转义双引号。例如:

Global Const $g_sFile = "D:\Program Files (x86)\Pidgin\pidgin.exe"

Run($g_sFile, "")

Related

答案 4 :(得分:-2)

中间有一个不匹配的"

通常/或\用于转义。尝试/“或”,因为我不确定哪一个都适用于AutoIt。