1

在我正在创建的批处理文件中,我试图在两个不同的复制文本之间进行字符串比较。基本上,旧的复制文本是否与新复制的文本相同。为此,我想访问剪贴板并将旧复制的文本存储在批处理文件中的变量中。然后,复制新文本,将其存储在我的批处理文件中的另一个变量中,然后比较两者,看看它们是否相同。我曾尝试寻找解决方案,但我看到的所有文章都描述了如何使用批处理文件将文本复制到剪贴板。然而,我正试图做相反的事情。非常感谢所有帮助。

4

2 回答 2

2

这是一个简短的批量嵌入解决方案:

1)创建一个小的VB文件,将剪贴板的内容存储在一个临时文件中

set clipFile=%temp%\clipboard
set vbFile=%temp%\clipboard.vbs
del %vbFile% %clipFile%

rem Create VB file
>"%vbFile%" (
echo.Set objHTML = CreateObject("htmlfile"^)
echo.ClipboardText = objHTML.ParentWindow.ClipboardData.GetData("text"^)
echo.path = "%clipFile%"
echo.Set objFSO = CreateObject("Scripting.FileSystemObject"^)
echo.Set objFile = objFSO.OpenTextFile(path, 2, true^)
echo.objFile.WriteLine ClipboardText
echo.objFile.Close )>>"%vbFile%"

2)执行VB脚本

"%vbFile%"

3)将文件内容存储在变量中

SETLOCAL ENABLEDELAYEDEXPANSION
    for /f "delims=" %%i in (%clipFile%) do Set line=%%i
    set clipboard=!line!
    echo clipboard="%clipboard%"
ENDLOCAL
于 2014-12-03T14:56:39.233 回答
1

没有从剪贴板读取的本地批处理解决方案,但有一些使用其他语言的简单方法。

这是一个 Powershell 脚本(如果需要,很容易从批处理文件中调用): http: //poshcode.org/2150

Raymond Chen 有一个使用 perl 的解决方案:http: //blogs.msdn.com/b/oldnewthing/archive/2009/11/10/9919908.aspx

于 2013-04-15T19:21:10.837 回答