Как скопировать значение в буфер обмена в переменную? - PullRequest
1 голос
/ 02 ноября 2011

У меня есть строка в клипе, и я хочу скопировать ее в переменную var. Я должен использовать эту строку, чтобы найти дополнительные подстроки в переменной.

Ответы [ 4 ]

1 голос
/ 05 ноября 2011

Использование команды clip, но она не существует в Windows XP: (

1 голос
/ 02 ноября 2011

Вы можете воспользоваться функциональностью, встроенной в Internet Explorer, и использовать его объект буфера обмена. Затем вы можете обернуть VBScript, который обращается к объектам IE, с помощью командного сценария:

@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% и т. Д.

0 голосов
/ 02 ноября 2011

Пакетные файлы не могут напрямую взаимодействовать с буфером обмена.Однако, есть разные люди, которые написали небольшие инструменты, чтобы сделать это для вас, поэтому вы можете получить инструмент GetClip с этого веб-сайта .

0 голосов
/ 02 ноября 2011

Это зависит от вашей операционной системы, инструментария, языка. Если вы пишете код на C ++ с Qt в Linux, вы можете использовать QClipboard :: text

...