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

Is there an escaping character (when using double-quotes in string declarations)?

这是我的代码 运行:

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

我也尝试过不使用分引号和使用引号,但后来出现语法错误。

你有一个无与伦比的 " 在中间。

一般使用/或\进行转义。尝试 /" 或 \",因为我不确定两者中哪一个适用于 AutoIt。

您的代码中的引号数量似乎有问题。我会做这样的事情:

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

问题是您计算机上的文件路径中有空格,需要用双引号引起来。

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

一旦你知道它有效,你就可以像这样将它添加到你的 AutoIt 代码中(注意它被单引号包围)。

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

在 AutoIt 中,您可以简单地通过重复引号来转义引号(与 Batch/DOS 中发生的方式相同):

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

根据Documentation - FAQ - Double quotes

If you want to use double-quotes inside a string then you must "double them up". So for every one quote you want you should use two. ...

or use single quotes instead ...

示例:

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.