Autohotkey 自动热键-使用多行代码作为变量插入到文件中

Autohotkey 自动热键-使用多行代码作为变量插入到文件中,autohotkey,Autohotkey,我在堆栈溢出中发现了与我相关的以下问题,但解决方案对我不起作用 我想编译一个AHK脚本,它在Notepad++中打开一个文件,并在特定行插入代码。我已经有了AHK脚本来处理普通字符串,但是它不能处理我试图使用的代码 我想使用记事本在文件中插入以下代码++ <Macro name="Remove Navis folders" Ctrl="no" Alt="no" Shift="no" Key="0"> <Action type="0" message="2318" wParam=

我在堆栈溢出中发现了与我相关的以下问题,但解决方案对我不起作用

我想编译一个AHK脚本,它在Notepad++中打开一个文件,并在特定行插入代码。我已经有了AHK脚本来处理普通字符串,但是它不能处理我试图使用的代码

我想使用记事本在文件中插入以下代码++

<Macro name="Remove Navis folders" Ctrl="no" Alt="no" Shift="no" Key="0">
<Action type="0" message="2318" wParam="0" lParam="0" sParam="" />
<Action type="3" message="1700" wParam="0" lParam="0" sParam="" /></Macro>"

"
这是我的剧本

    obj := {"key": 
(
    <Macro name="Remove Navis folders" Ctrl="no" Alt="no" Shift="no" Key="0">
<Action type="0" message="2318" wParam="0" lParam="0" sParam="" />
<Action type="3" message="1700" wParam="0" lParam="0" sParam="" /></Macro>
)}

Run, notepad++.exe %A_AppData%\Notepad++\shortcuts.xml
Sleep, 200
Send, ^{Home}
Send, ^f
Sleep, 200
Sendraw, <Macros>
Send, {ENTER}{ESC}{Right}
Sleep, 200
Send, {ENTER}{Tab}
Sleep, 200
Send, % obj["key"]
obj:={“key”:
(
)}
运行,notepad++.exe%A\u AppData%\notepad++\shortcuts.xml
睡吧,200
发送,^{Home}
发送,^f
睡吧,200
森德劳,
发送,{ENTER}{ESC}{Right}
睡吧,200
发送,{ENTER}{Tab}
睡吧,200
发送%obj[“键”]

您必须将整个文本放入作为代码一部分的“和转义”中,否则会出现错误

obj := {"key": 
(
"<Macro name=""Remove Navis folders"" Ctrl=""no"" Alt=""no"" Shift=""no"" Key=""0"">
<Action type=""0"" message=""2318"" wParam=""0"" lParam=""0"" sParam="""" />
<Action type=""3"" message=""1700"" wParam=""0"" lParam=""0"" sParam="""" /></Macro>"""
)}

MsgBox % obj["key"]
obj:={“key”:
(
"
"""
)}
MsgBox%obj[“键”]

一些注释(提示)-1:运行脚本不需要编译(正如您所知)。2:您不需要使用编辑器来操作文件,您可以使用FileRead+StringReplace+FileAppend来创建修改过的(新)文件。3:您可以循环浏览文件夹中的所有文件或一组特定的文件。4:如果您有更多“文件编辑需要“GitHub上有一个名为TF的文本文件库,其中包含很多可能会引起兴趣的函数,代码在GitHub上。谢谢你的提示。1:但我想编译脚本,与其他没有安装AHK的同事共享。2:我希望它只与记事本++一起工作。但是FileRead和其他函数确实提供了信息。谢谢你。3&4:非常感谢你的链接。也许有一天我会需要的。