【发布时间】:2011-12-20 03:56:57
【问题描述】:
我在剪辑中有一个字符串,我想将它复制到一个变量 var。 我必须使用该字符串在变量中查找更多子字符串。
【问题讨论】:
标签: variables batch-file clipboard
我在剪辑中有一个字符串,我想将它复制到一个变量 var。 我必须使用该字符串在变量中查找更多子字符串。
【问题讨论】:
标签: variables batch-file clipboard
使用clip 命令
但它在 Windows XP 中不存在 :(
【讨论】:
您可以利用 Internet Explorer 内置的功能,并使用其剪贴板对象。然后你可以用命令脚本封装访问 IE 对象的 VBScript:
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
CALL :GetClipboardText Text
ECHO %LineCount% lines copied.
ECHO Line1: %Text1%
ECHO Line2: %Text2%
ECHO Line3: %Text3%
ECHO Line4: %Text4%
ENDLOCAL
GOTO :EOF
:GetClipboardText
CALL :GetTempFilename TempFile
ECHO Set objHTML = CreateObject("htmlfile")>%TempFile%
ECHO WScript.Echo objHTML.ParentWindow.ClipboardData.GetData("text")>>%TempFile%
SET LineIndex=1
FOR /F "delims=" %%A IN ('%TempFile% //NOLOGO') DO (
SET %1!LineIndex!=%%A
SET /A LineIndex=!LineIndex!+1
)
SET LineCount=%LineIndex%
DEL %TempFile%
GOTO :EOF
:GetTempFilename
FOR /F "delims=:. tokens=2-5" %%A IN ('ECHO ^| TIME') DO SET T=%%A%%B%%C%%D & GOTO :X
:X
CALL :Trim %T% T
SET %1=%Temp%\TMP%T%.vbs
GOTO :EOF
:Trim
SET %2=%1
GOTO :EOF
不幸的是,由于命令脚本引擎的性质,我不得不将文本分成几行。在我的示例中,%LineCount% 将包含行数,将由 %Text1%、%Text2% 等重试。
【讨论】:
批处理文件不能直接与剪贴板交互。但是,有很多人为您编写了一些小工具来执行此操作,因此您可以从 website 获取 GetClip 工具。
【讨论】:
这取决于您的操作系统、工具包、语言。如果您在 Linux 上使用 Qt 在 C++ 中编写代码,则可以使用 QClipboard::text
【讨论】: