Baris perintah utilitas / alat Windows untuk memindahkan clipboard ke file

3

Saya telah melihat alat serupa CLIP di sini perintah Klip tetapi bekerja ke clipboard bukan ke arah lain.

Saya telah melihat referensi "paste" tetapi ini tampaknya bukan bagian dari windows. Saya perlu menemukan solusi yang bekerja dengan lingkungan standar w7 w8 w8.

Klip didistribusikan. Apakah ada alat yang berfungsi dari clipboard ke file?

EDIT Sepertinya itu mungkin dilakukan dengan perintah powershell
Program C # yang baru saja saya tulis ini melakukan apa yang akan saya lakukan dengan 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);
    }
}
phil soady
sumber

Jawaban:

2

Windows cmd(jika clipboard berisi data teks):

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

Contoh menunjukkan bahwa perintah di atas menambahkan dua byte ke output ( Crdan 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

==>

Baca lebih lanjut tentang metode .NET Framework Clipboard Class .

Edit jawaban topik yang diperluas (simpan gambar, lih. ImageFormat Class ):

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"
}
JosefZ
sumber
terlihat berguna, hanya menguji kode c # jika (! Clipboard.ContainsImage ()) kembali; Gambar img = Clipboard.GetImage (); tetapi sangat berguna untuk mengetahui bahwa saya dapat memulai PowerShell untuk mengakses System.Windows.Forms.Clipboard] :: GetImage () Saya segera mengujinya
phil soady
Kode skrip (bagian berikut -Command) tampaknya perlu dikutip agar ini berjalan di bawah Bash di Ubuntu pada Windows.
Kenny Evitt
kelas Clipboard tersedia sejak. NET 1.1 tetapi entah bagaimana ketika saya mencobanya Powershell -version 2 -command Add-Type -AssemblyName System.Windows.Forms;[System.Windows.Forms.Clipboard]::GetText()tidak berjalan. Ini hanya bekerja dengan versi 3 dan lebih tinggi
phuclv
2

Adakah yang punya alat yang berfungsi dari clipboard ke file?

Ini dapat dilakukan dengan menggunakan file batch yang berisi beberapa VBS tertanam.

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

Catatan:

  • Konten clipboard ditulis ke clip.txtdalam direktori saat ini

Contoh penggunaan:

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>

Sumber: Berdasarkan kode Batch untuk menempel dari clipboard ke file?

DavidPostill
sumber
Saya mencari solusi data gambar / biner. Seseorang mungkin menganggap skrip berguna. terima kasih David
phil soady
2

Anda dapat menggunakan cmdlet PowerShell Get-Clipboard(alias gcb).

Tulis teks clipboard ke file:

gcb > myfile.txt

Memang ada opsi untuk mendapatkan gambar dari clipboard,, -Format Imagetetapi itu tampaknya hanya menyediakan data meta, jadi mungkin tidak membantu dalam menulis gambar ke file.

gilly3
sumber
0

Cara terbaik yang saya tahu, adalah dengan menggunakan alat mandiri yang disebut WINCLIP .

Anda bisa mendapatkannya dari sini: Pertarungan

Pemakaian:

  • Simpan clipboard ke file: winclip -p file.txt
  • Salin stdout ke clipboard: winclip -cMis:Sed 's/find/replace/' file | winclip -c
  • Pipa clipboard ke sed: winclip -p | Sed 's/find/replace/'
  • Gunakan winclip output (clipboard) sebagai argumen dari perintah lain:

    FOR /F "tokens=* usebackq" %%G in ('winclip -p') Do (YOUR_Command %%G )

Anda mungkin juga ingin lihat getclip & putclip alat: CygUtils untuk Windows tapi winclip lebih baik menurut saya.

KorkOoO
sumber