[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 批处理如何读取剪切板内容并赋值?

东拼西凑的代码,我弄很久没有成功。
文本是成功复制到剪切板了,但就是粘贴不出来。
帮我改改,谢谢!
  1. Set /p "T=自定义剪切板文本内容:"
  2. FOR /F "usebackq tokens=* delims=" %%U in (`mshta vbscript:clipboarddata.setdata^("text"^,"%T%"^)^(close^) 2^<nul`) Do Set "TT=%%U"
  3. FOR /F "usebackq tokens=* delims=" %%U in (`mshta vbscript:clipboarddata.getdata^("text"^)^(close^) 2^<nul`) Do Set "TT=%%U"
  4. echo %TT%
复制代码

powershell -c " get-clipboard -raw"

powershell 5.1 , 注意多行问题

TOP

  1. Set /p "T=自定义剪切板文本内容:"
  2. mshta vbscript:clipboarddata.setdata^("text","%T%")(close)
  3. FOR /F "delims=" %%U in ('mshta VBScript:Execute("CreateObject(""Scripting.Filesystemobject"").GetStandardStream(1).Write(clipboarddata.getdata(""text""))"^)(close^)') Do Set "TT=%%U"
  4. echo %TT%
复制代码

TOP

回复 2# Five66

非常感谢你的回复,但是因为考虑到我的电脑没有安装 powershell ,我不想用 powershell ,只想用纯属 bat 去实现呀。

TOP

本帖最后由 aloha20200628 于 2024-6-26 15:01 编辑

回复 1# mokson
  1. @set @x=1 /* &@echo off
  2. set/p "t=自定义剪切板文本内容:"
  3. set/p="%t%"<nul|clip &for /f "delims=" %%t in (' cscript /e:jscript "%~f0" ') do echo,"%%t"
  4. pause&exit/b */
  5. hf=WSH.createobject('htmlfile'),ct=hf.parentWindow.clipboardData.getData('text'),WSH.echo(ct);
复制代码

代码存为test.bat运行,实测mshta调用设置剪贴板内容的功能不稳定,可改用clip命令为宜,且批处调用mshta代码会用闪屏"致敬"。

TOP

回复 3# buyiyang 成功了,代码有点长,我想想有没有方法精简一下。非常多谢。

TOP

可以试试 第三方工具 winclip ,命令简单好记,调用速度我感觉挺快的
支持命令行调用的剪贴板工具winclip.exe
bat小白,请多指教!谢谢!

TOP

如5楼兄台所说,调用mshta会闪屏,我还是放弃了这种方式去获取剪切板内容。但还是非常感谢大家的帮助。
我最终还是选择了用第三方工具。如7楼兄台推荐的 winclip,或者 nircmd。
用 nircmd 的话,用 nircmd execmd echo ~$clipboard$ ,或 nircmd consolewrite ~$clipboard$ 都可以轻易实现。

TOP

返回列表