【问题标题】:Copy Clipboard Value to Variable and Append to Existing Text将剪贴板值复制到变量并附加到现有文本
【发布时间】:2018-02-27 17:03:32
【问题描述】:

有没有办法将剪贴板值分配给变量,然后使用批处理文件将该变量附加到新文本?

这是我正在尝试做的事情的副本。在我的示例中,“world”表示剪贴板包含的值。

@echo off
set myclip=world
(
   echo hello %myclip%
)| clip

【问题讨论】:

  • 有 3rd 方解决方案见:stackoverflow.com/a/17819928/4304 - 或者 - 如果你可以使用 powershell,有一个 Get-Clipboard 命令。
  • 基于 npocmaka 回答的最终解决方案。 for /f "usebackq tokens=* delims=" %%i in (`mshta "javascript:Code(close(new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(clipboardData.getData('Text'))));") do set "clipboardText=%%i" echo %clipboardText% echo|set/p=%clipboardText% It WORKS!|clip

标签: windows batch-file


【解决方案1】:

要获取剪贴板数据,您可以使用:

for /f "usebackq tokens=* delims=" %%i in (`mshta "javascript:Code(close(new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(clipboardData.getData('Text'))));"`) do set "clipboardText=%%i"

echo %clipboardText%

【讨论】:

  • 我尝试了您提供的代码,但它似乎不起作用。执行批处理之前是否需要运行 mshta?
  • @crjunk - 没有。有什么错误吗?我刚刚复制并粘贴了代码,它的工作形式 - 在控制台上打印剪贴板数据...
  • 哇。我们在工作中使用 Sentinel One 进行威胁防护。一旦我执行代码,它就会停止脚本并将其删除。不管怎样,我确实看到它回显了剪贴板文本。
  • 它显示“%%i 在这个时候是意外的。”当我在脚本中添加暂停时
  • @crjunk - 从 bat 文件执行此操作,但不能直接从控制台执行。如果您打算从控制台使用它,请使用单 % 而不是双。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-14
相关资源
最近更新 更多