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

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

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

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

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

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

1 个赞

感觉快捷键的方便一些

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

6 个赞

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

#SingleInstance
#Persistent
FileEncoding , UTF-8
return

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

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

1 个赞

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

3 个赞

粘贴到什么位置?

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

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

1 个赞

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

为啥我win11下,txt无法预览出来 :rofl:

大佬 这个怎么用得呀 ::

我也是win11 没有问题。


那就奇怪了,为啥我不行呢,上面得视频文件倒是可以预览 ::

image
看看这样行不行

下载安装autohotkey,创建一个ahk脚本,把代码粘贴保存,双击运行这个ahk文件

试了 也不行 :::

可以用c#寫個簡單的文件拖拽框,拖進去就自動複製到剪切板

1 个赞

只用批处理也可以。

@echo off

echo 请拖放文件到此处并按Enter。
echo 如需退出,请关闭该窗口。

:A
set /p FILE="> "
clip < %FILE%
echo 已将 %FILE% 的内容复制到剪切板。
goto A

将上述命令保存为 拖放复制.bat,双击运行,将文件拖入命令行窗口,再按 Enter,即可将文件内容复制到剪切板。

2 个赞

Copy Contents - 一键复制文件内的文本或图片内容[Win] - 小众软件 (appinn.com)

突然发现小众软件以前推荐过一个软件,我放在收藏里今天刚好发现