实用程序或命令将所有打开的记事本实例保存在某处

实用程序或命令将所有打开的记事本实例保存在某处

有时候我发现自己会使用 Notepad,而不是 Notepad++ 或更好的编辑器。有时我甚至会将重要内容放在记事本窗口中。

每次需要重启电脑时,我经常会打开多达 20 个记事本实例。当然,其中大多数都是无用的,但我必须逐个扫描,看看是否有值得保存的内容。

是否有可用的实用程序或命令来执行以下任一操作:

  1. 将所有打开的记事本保存到一个文件中
  2. 将所有打开的记事本保存到默认命名的文件中
  3. 将内存中的记事本实例保存到磁盘,以便它们在重新启动时启动

答案1

就在这里自动热键适合此类任务的工具。

您可以创建一个重复的宏

  1. 聚焦任何Notepad标题中有单词的窗口(如果未找到这样的窗口则退出)
  2. 发送Ctrl+S保存文件
  3. 等待几秒钟
  4. 如果它发现(再次按标题)“另存为”对话框打开(即,在保存新文件的情况下),它会填写一些默认的编号文件名(通过发送击键)并发送Alt+S以按下节省对话框中的按钮
  5. 将命令添加notepad <filename>restore-notepads.bat文件中
  6. 发送Alt+F4来关闭记事本实例
  7. 重复。

然后你可以添加restore-notepads.bat到你的启动菜单,您将发现您所描述的功能“3.将内存中的记事本实例保存到磁盘,以便它们在重新启动时启动”。

答案2

我一直使用记事本作为临时文本存储,因为没有其他程序启动速度更快。为了保存或备份记事本实例的内容,我编写了一些 AHK 代码。它基本上基于 miroxlav 的答案,但我不需要恢复。

下面是代码。

+!s:: ;Save all notepad instance

    ClipSaved := ClipboardAll 

    LastClip := ""
    WinGet, id, list, *Untitled - Notepad, ,, ;[1]
    Loop, %id%
    {
        this_id := id%A_Index%
        WinActivate, ahk_id %this_id%
        Send ^A
        Send ^C
        Sleep 500
        WinMinimize, ahk_id %this_id%
        WinGetClass, this_class, ahk_id %this_id%
        WinGetTitle, this_title, ahk_id %this_id%
        LastClip = %LastClip% `r`n-------`r`n %ClipBoard% ;[2]
        ToolTip , Saving All Untitled Notepad Instances `n%a_index% of %id%`nahk_id %this_id%`nahk_class %this_class%`n%this_title%`n
    }

    ClipBoard := LastClip
    ; ToolTip , %ClipBoard%

    Run notepad.exe
    Sleep 1000
    Send ^V
    Sleep 1000

    Clipboard := ClipSaved  
    ClipSaved = 

    #Persistent
    ToolTip, Done
    SetTimer, RemoveToolTip, 2500
    return

    RemoveToolTip:
    SetTimer, RemoveToolTip, Off
    ToolTip
    return

return

将代码保存到.ahk文件中,运行它,按下后Alt+Shift+S,所有未命名的记事本实例的内容应合并到一个新的记事本窗口中。

笔记:

  • [1] 如果您想要保存所有记事本实例,而不仅仅是无标题的实例,则将 更改为*Untitled - Notepadahk_exe notepad.exe可以了。
  • [2] 这是单独的一行。

虽然这个答案来自5年后,但我仍然希望这能对你有所帮助。

相关内容