最近工作需要频繁使用 txt 文件
每次都是 双击打开、Ctrl+A、Ctrl+C、关闭
有没有办法快速将 txt 文件的内容复制到剪切板呢?
可以用autohotkey可以来实现。
设置快捷键为直接复制txt文本内容。
或者做个悬浮工具,把txt拖动到悬浮上面就复制文本。
你喜欢哪种啊,我搞下代码。
感觉快捷键的方便一些
快捷键是F3,对于文件管理器有效,对于桌面文件好像无效
```
#SingleInstance
#Persistent
FileEncoding , UTF-8
return
F3::
{
sel := Explorer_GetSelected()
FileRead, alltext, sel
clipboard:=alltext
return
}
;以下内容为获取选中文件路径
Explorer_GetPath(hwnd=“”)
{
if !(window := Explorer_GetWindow(hwnd))
return ErrorLevel := “ERROR”
if (window=“desktop”)
return A_Desktop
path := window.LocationURL
path := RegExReplace(path, “ftp://.*@”,“ftp://”)
path := RegExReplace(path, “%20”," “) ;替换空格,否则显示%20
StringReplace, path, path, file:///
StringReplace, path, path, /, , All
; thanks to polyethene
Loop
If RegExMatch(path, “i)(?<=%)[da-f]{1,2}”, hex)
StringReplace, path, path, %%hex%, % Chr("0x" . hex), All</s> <s> Else Break</s> <s> return path</s> <s>}</s> <s> </s> <s>Explorer_GetAll(hwnd="")</s> <s>{</s> <s> return Explorer_Get(hwnd)</s> <s>}</s> <s> </s> <s>Explorer_GetSelected(hwnd="")</s> <s>{</s> <s> return Explorer_Get(hwnd,true)</s> <s>}</s> <s> </s> <s>Explorer_GetWindow(hwnd="")</s> <s>{</s> <s> ; thanks to jethrow for some pointers here</s> <s> WinGet, process, processName, % "ahk_id" hwnd := hwnd? hwnd:WinExist("A")</s> <s> WinGetClass class, ahk_id %hwnd%</s> <s> </s> <s> if (process!="explorer.exe")</s> <s> return</s> <s> if (class ~= "(Cabinet|Explore)WClass")</s> <s> {</s> <s> for window in ComObjCreate("Shell.Application").Windows</s> <s> if (window.hwnd==hwnd)</s> <s> return window</s> <s> }</s> <s> else if (class ~= "Progman|WorkerW")</s> <s> return "desktop" ; desktop found</s> <s>}</s> <s> </s> <s>Explorer_Get(hwnd="",selection=false)</s> <s>{</s> <s> if !(window := Explorer_GetWindow(hwnd))</s> <s> return ErrorLevel := "ERROR"</s> <s> if (window="desktop")</s> <s> {</s> <s> ControlGet, hwWindow, HWND,, SysListView321, ahk_class Progman</s> <s> if !hwWindow ; #D mode</s> <s> ControlGet, hwWindow, HWND,, SysListView321, A</s> <s> ControlGet, files, List, % ( selection ? "Selected":"") "Col1",,ahk_id %hwWindow%</s> <s> base := SubStr(A_Desktop,0,1)=="" ? SubStr(A_Desktop,1,-1) : A_Desktop</s> <s> Loop, Parse, files,
n, r</s> <s> {</s> <s> path := base "" A_LoopField</s> <s> IfExist %path% ; ignore special icons like Computer (at least for now)</s> <s> ret .= path "
n”
}
}
else
{
if selection
collection := window.document.SelectedItems
else
collection := window.document.Folder.Items
for item in collection
ret .= item.path “n"</s> <s> }</s> <s> return Trim(ret,"
n”)
}
基本工具(cmd命令行)应该也可以。
刚才搜索了一下,确实可以 cmd命令重定向到剪切板 - 知亦行 - 博客园
使用系统自带的 clip 命令。
示例:
echo Hello | clip
dir | clip
clip < README.TXT
echo | clip
前面那个复杂了,这么几行就行了。。。
桌面文件也行
#SingleInstance
#Persistent
FileEncoding , UTF-8
return
F3::
{
send,^+c
FileRead, alltext, %clipboard%
clipboard:=alltext
return
}
粘贴到什么位置?
如果只是想要获取内容到剪贴板, 楼上的AHK方案和quicker都可以.
如果是粘贴到word或excel之类的, 还有更便捷的方法.
正解,还可以做成批处理,然后把txt文件拖上去
为啥我win11下,txt无法预览出来
大佬 这个怎么用得呀 ::
看看这样行不行
下载安装autohotkey,创建一个ahk脚本,把代码粘贴保存,双击运行这个ahk文件
试了 也不行 :::
可以用c#寫個簡單的文件拖拽框,拖進去就自動複製到剪切板
只用批处理也可以。
@echo off
echo 请拖放文件到此处并按Enter。
echo 如需退出,请关闭该窗口。
:A
set /p FILE="> "
clip < %FILE%
echo 已将 %FILE% 的内容复制到剪切板。
goto A
将上述命令保存为 拖放复制.bat
,双击运行,将文件拖入命令行窗口,再按 Enter,即可将文件内容复制到剪切板。
Copy Contents - 一键复制文件内的文本或图片内容[Win] - 小众软件 (appinn.com)
突然发现小众软件以前推荐过一个软件,我放在收藏里今天刚好发现