3

Я видел подобный инструмент CLIP здесь Команда Clip, но он работает в буфер обмена, а не в другом направлении.

Я видел ссылки на "вставить", но это не является частью окна. Мне нужно найти решение, которое работает со стандартными средами w7, w8, w10.

Клип распространяется. Кто-нибудь инструмент, который работает из буфера обмена в файл?

РЕДАКТИРОВАТЬ Кажется, что это можно сделать с помощью команды powershell
Эта программа на C #, которую я только что написал, делает то же самое, что и Powershell.

class Clip2File
{
    [STAThread()]
    static void Main(string[] args)
    {
        var fileName = @"c:\demo.png";
        if (args.Length != 0){
            fileName = args[0];
        }
        if (!Clipboard.ContainsImage()) return;
        Image img = Clipboard.GetImage();
        img?.Save(fileName, ImageFormat.Png);
    }
}

3 ответа3

2

Windows cmd (если буфер обмена содержит текстовые данные):

Powershell -command Add-Type -AssemblyName System.Windows.Forms;[System.Windows.Forms.Clipboard]::GetText()

Пример показывает, что вышеприведенная команда добавляет два байта к выводу (Cr и Lf):

==> >1049363a.txt echo first line

==> >>1049363a.txt echo 2nd line

==> clip<1049363a.txt

==> >1049363b.txt Powershell -command Add-Type -AssemblyName System.Windows.Forms;[System.W
indows.Forms.Clipboard]::GetText()

==> findstr /N "^" 1049363*.txt
1049363a.txt:1:first line
1049363a.txt:2:2nd line
1049363b.txt:1:first line
1049363b.txt:2:2nd line
1049363b.txt:3:

==> dir 1049363*.txt |find ".txt"
06.03.2016  17:24                22 1049363a.txt
06.03.2016  17:24                24 1049363b.txt

==>

Узнайте больше о методах класса .NET Framework Clipboard .

Редактировать ответы в расширенной теме (сохранить изображение, ср. Класс ImageFormat):

Add-Type -AssemblyName System.Windows.Forms  ### not necessary in PowerShell_ISE
if ($([System.Windows.Forms.Clipboard]::ContainsImage())) {
    $image = [System.Windows.Forms.Clipboard]::GetImage()
    $filename='d:\test\test.png'             ### edit to fit in your circumstances

    [System.Drawing.Bitmap]$image.Save($filename,
                    [System.Drawing.Imaging.ImageFormat]::Png)

    Write-Output "clipboard content saved as $filename"
} else {
    Write-Output "clipboard does not contains image data"
}
2

У кого-нибудь есть инструмент, который работает из буфера обмена в файл?

Это можно сделать с помощью командного файла, содержащего некоторые встроенные VBS.

GetClip.cmd:

@echo off
(
echo set objHTML = CreateObject("htmlfile"^)
echo ClipboardText = objHTML.ParentWindow.ClipboardData.GetData("text"^)
echo set objFSO = CreateObject("Scripting.FileSystemObject"^)   
echo set objFile = objFSO.OpenTextFile("clip.txt", 2, true^)
echo objFile.WriteLine ClipboardText
echo objFile.Close
) > "%temp%\clip.vbs"
"%temp%\clip.vbs"
endlocal

Заметки:

  • Содержимое буфера обмена записывается в clip.txt в текущем каталоге

Пример использования:

F:\test>type LoremIpsum.txt
Id pri magna tibique, vel et eruditi perpetua, numquam mandamus sed et.
Te nam diam veritus.
Ad est quaestio ocurreret, at vix modo prima officiis.
Modus principes definiebas mei et, atqui exerci ea sit.
An eirmod saperet dissentiunt sea, esse postea eleifend ex eam.

F:\test>clip<LoremIpsum.txt

F:\test>getclip

F:\test>type clip.txt
Id pri magna tibique, vel et eruditi perpetua, numquam mandamus sed et.
Te nam diam veritus.
Ad est quaestio ocurreret, at vix modo prima officiis.
Modus principes definiebas mei et, atqui exerci ea sit.
An eirmod saperet dissentiunt sea, esse postea eleifend ex eam.


F:\test>

Источник: на основе пакетного кода для вставки из буфера обмена в файл?

2

Вы можете использовать командлет PowerShell Get-Clipboard (с псевдонимом gcb).

Запишите текст буфера обмена в файл:

gcb > myfile.txt

У него есть возможность получить изображение из буфера обмена -Format Image , но, похоже, он предоставляет только метаданные, поэтому он может оказаться бесполезным при записи изображения в файл.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .