Utilitário do Windows / linha de comando da ferramenta para mover a área de transferência para o arquivo

3

Eu vi uma ferramenta semelhante CLIP aqui Comando de clipe mas funciona prancheta não a outra direção.

Eu vi referências a "colar", mas isso não parece fazer parte do Windows. Eu preciso encontrar uma solução que funcione com ambientes w7 w8 w10 padrão.

O clipe é distribuído. Alguém faz uma ferramenta que funciona da área de transferência para o arquivo?

EDIT Parece ser possível fazer com um comando do powershell
Este programa C # que acabei de escrever faz o que eu faria com um 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);
    }
}
    
por phil soady 06.03.2016 / 14:09

3 respostas

2

Windows cmd (se a área de transferência contiver dados de texto):

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

Exemplo mostra que o comando acima adiciona dois bytes à saída ( Cr e 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

==>

Leia mais sobre o .NET Framework Métodos de classe da área de transferência.

Editar responde ao tópico estendido (salvar imagem, cf. Classe 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"
}
    
por 06.03.2016 / 17:44
2

Alguém possui uma ferramenta que funciona da área de transferência para o arquivo?

Isso pode ser feito usando um arquivo de lote contendo algum VBS incorporado.

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

Notas:

  • O conteúdo da área de transferência é gravado em clip.txt no diretório atual

Exemplo de uso:

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>

Fonte: Baseado em Código em lote para colar da área de transferência em um arquivo?

    
por 07.03.2016 / 13:40
1

Você pode usar o cmdlet do PowerShell Get-Clipboard (aliasiado como gcb ).

Escreva o texto da área de transferência em um arquivo:

gcb > myfile.txt

Ele tem uma opção para obter uma imagem da área de transferência, -Format Image , mas isso parece fornecer apenas metadados, então pode não ser útil escrever uma imagem em um arquivo.

    
por 29.06.2017 / 20:17