有没有办法,不打开txt文件,直接复制里面的全部内容?

最近工作需要频繁使用 txt 文件

每次都是 双击打开、Ctrl+A、Ctrl+C、关闭

有没有办法快速将 txt 文件的内容复制到剪切板呢?

可以用autohotkey可以来实现。
设置快捷键为直接复制txt文本内容。
或者做个悬浮工具,把txt拖动到悬浮上面就复制文本。

你喜欢哪种啊,我搞下代码。

1 Like

感觉快捷键的方便一些

快捷键是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 命令。

位于 C:\Windows\system32\clip.exe。

示例:

将字符串 Hello 放入 Windows 剪贴板

echo Hello | clip

将 dir 命令输出(当前目录列表)放入 Windows 剪贴板

dir | clip

将 readme.txt 的文本放入 Windows 剪贴板

clip < README.TXT

将一个空行放入 Windows 剪贴板,即清空 Windows 剪贴板

echo | clip

3 Likes

前面那个复杂了,这么几行就行了。。。
桌面文件也行

#SingleInstance
#Persistent
FileEncoding , UTF-8
return

F3::
{
    send,^+c
    FileRead, alltext, %clipboard%
    clipboard:=alltext
    return
}
2 Likes

用quicker两步搞定,读取,复制

1 Like

在win10里。可以在查看打开预览窗口,选中txt文件,会有预览,可以复制。
不知你要的是不是这个东西。

3 Likes

粘贴到什么位置?

如果只是想要获取内容到剪贴板, 楼上的AHK方案和quicker都可以.

如果是粘贴到word或excel之类的, 还有更便捷的方法.

1 Like

正解,还可以做成批处理,然后把txt文件拖上去