You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用AutoHotkey为选中的多个文本批量添加引号?

批量为选中的多个字符串添加引号的AutoHotkey实现

核心逻辑

通过快捷键触发脚本,完成以下操作:

  1. 复制选中的文本到剪贴板
  2. 将文本按行分割(默认每个目标字符串单独一行)
  3. 为每一行非空文本前后添加双引号
  4. 合并处理后的内容并粘贴回原位置

完整脚本

^+q::
    ; 复制选中内容到剪贴板
    Clipboard := ""
    SendInput, ^c
    ClipWait, 1  ; 等待剪贴板内容就绪
    if ErrorLevel  ; 复制失败则直接退出
        return
    
    ; 按行分割文本,自动去除多余回车符
    lines := StrSplit(Clipboard, "`n", "`r")
    processedLines := []
    
    ; 遍历每行,添加引号并跳过空行
    for _, line in lines {
        trimmedLine := Trim(line)
        if trimmedLine = ""
            continue
        processedLines.Push("""" . trimmedLine . """")
    }
    
    ; 合并处理后的行,保留原换行格式
    newText := StrJoin(processedLines, "`n")
    
    ; 将结果粘贴回原位置
    Clipboard := newText
    SendInput, ^v
return

; 辅助函数:将数组元素用指定分隔符拼接成字符串
StrJoin(arr, sep="") {
    output := ""
    for idx, item in arr {
        if idx > 1
            output .= sep
        output .= item
    }
    return output
}

使用步骤

  • 选中目标文本:确保每个需要添加引号的字符串单独占一行(空行会被自动忽略)
  • 触发快捷键:按下Ctrl+Shift+Q,所有非空字符串会自动被添加前后双引号

自定义调整

如果你的字符串用其他分隔符(比如逗号、空格),只需修改分割逻辑:

  • 例:若字符串以逗号分隔,将lines := StrSplit(Clipboard, "n", "r")改为lines := StrSplit(Clipboard, ", ")
  • 例:需要添加单引号,把""" . trimmedLine . """替换为"' . trimmedLine . '"

内容的提问来源于stack exchange,提问作者Henrik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 16:43:21