标题: [文本处理] 批处理如何读取剪切板内容并赋值? [打印本页]
作者: mokson 时间: 2024-6-26 09:58 标题: 批处理如何读取剪切板内容并赋值?
东拼西凑的代码,我弄很久没有成功。
文本是成功复制到剪切板了,但就是粘贴不出来。
帮我改改,谢谢!
- Set /p "T=自定义剪切板文本内容:"
- FOR /F "usebackq tokens=* delims=" %%U in (`mshta vbscript:clipboarddata.setdata^("text"^,"%T%"^)^(close^) 2^<nul`) Do Set "TT=%%U"
- FOR /F "usebackq tokens=* delims=" %%U in (`mshta vbscript:clipboarddata.getdata^("text"^)^(close^) 2^<nul`) Do Set "TT=%%U"
- echo %TT%
复制代码
作者: Five66 时间: 2024-6-26 10:19
powershell -c " get-clipboard -raw"
powershell 5.1 , 注意多行问题
作者: buyiyang 时间: 2024-6-26 10:53
- Set /p "T=自定义剪切板文本内容:"
- mshta vbscript:clipboarddata.setdata^("text","%T%")(close)
- FOR /F "delims=" %%U in ('mshta VBScript:Execute("CreateObject(""Scripting.Filesystemobject"").GetStandardStream(1).Write(clipboarddata.getdata(""text""))"^)(close^)') Do Set "TT=%%U"
- echo %TT%
复制代码
作者: mokson 时间: 2024-6-26 11:19
回复 2# Five66
非常感谢你的回复,但是因为考虑到我的电脑没有安装 powershell ,我不想用 powershell ,只想用纯属 bat 去实现呀。
作者: aloha20200628 时间: 2024-6-26 11:40
本帖最后由 aloha20200628 于 2024-6-26 15:01 编辑
回复 1# mokson - @set @x=1 /* &@echo off
- set/p "t=自定义剪切板文本内容:"
- set/p="%t%"<nul|clip &for /f "delims=" %%t in (' cscript /e:jscript "%~f0" ') do echo,"%%t"
- pause&exit/b */
- hf=WSH.createobject('htmlfile'),ct=hf.parentWindow.clipboardData.getData('text'),WSH.echo(ct);
复制代码
代码存为test.bat运行,实测mshta调用设置剪贴板内容的功能不稳定,可改用clip命令为宜,且批处调用mshta代码会用闪屏"致敬"。
作者: mokson 时间: 2024-6-26 11:45
回复 3# buyiyang 成功了,代码有点长,我想想有没有方法精简一下。非常多谢。
作者: 77七 时间: 2024-6-26 12:03
可以试试 第三方工具 winclip ,命令简单好记,调用速度我感觉挺快的
支持命令行调用的剪贴板工具winclip.exe
作者: mokson 时间: 2024-6-26 16:12
如5楼兄台所说,调用mshta会闪屏,我还是放弃了这种方式去获取剪切板内容。但还是非常感谢大家的帮助。
我最终还是选择了用第三方工具。如7楼兄台推荐的 winclip,或者 nircmd。
用 nircmd 的话,用 nircmd execmd echo ~$clipboard$ ,或 nircmd consolewrite ~$clipboard$ 都可以轻易实现。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |