Autohotkey:如何向字符串添加双引号(“)

问题描述 投票:0回答:3

我有一个 AutoHotkey 脚本:

IfInString, pp_text, %A_Space%
                {
                    pp_text := %pp_text%                                    
                }               

因此,如果 %pp_text% 包含空格,我想在开头和结尾添加 "

示例: pp_text = 你好世界 那么应该变成 pp_text =“你好世界”

我该怎么做?

autohotkey
3个回答
2
投票

您可以通过在其旁边放置另一个引号来“转义”引号,然后使用连接运算符 . 进行“连接”,但实际上 99% 的情况下您也可以省略该运算符。 脚本中需要修复的其他问题:

摆脱那个超级不推荐使用的遗留命令并使用 

InStr()


代替。 当您在表达式中时,只需键入变量名称即可引用该变量。您使用的那些双

%
是引用变量的传统方式。 因此,它在旧命令中是正确的,但在现代
:=

分配中则不然。 您还可以在单行 if 语句中省略括号。但这当然只是个人喜好。

完整脚本:

If (InStr(pp_text, A_Space)) pp_text := """" pp_text """"

外部两个引号后的四个引号指定我们正在输入一个字符串。



1
投票
表达式
中的变量名称不包含在百分号

中。 因此,文字字符串必须用双引号括起来 将它们与变量区分开来。

包含实际的引号字符 在文字字符串内,指定两个连续的引号,如所示两次 在这个例子中:“她说,”“每天一个苹果。”””。

pp_text := "Hello World" If InStr(pp_text, " ") pp_text := """Hello World""" MsgBox % pp_text

编辑:
要在输出表达式中使用变量的名称(而不是其文字文本),您需要四个引号,如 
user 0x464e

所解释的那样。

pp_text := "Hello World" If InStr(pp_text, " ") pp_text := """" pp_text """" MsgBox % pp_text

在我的 AHK v2 安装中,这会导致错误,并且 AHK 拒绝保存编辑后的脚本。查阅
官方文档

0
投票
后我得到了更好的结果

因此,如果我的字符串有双引号,按照 HTML 的要求: "<div class="myClass">My text</div>"

我这样将它分配给变量(v2):

MyVar := '<div class="myClass">My text</div>'

保存时不再出现错误。无论如何,对我来说。 2024 年从 AHK v1 过渡到 v2 让我时不时摸不着头脑,但我正在实现目标。

	

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.