Powershell - hapus metadata dari teks
Saya ingin menulis skrip Powershell yang, ketika dijalankan, akan menghapus semua pemformatan dan metadata serupa dari teks di clipboard.
Saya berbicara tentang hal-hal seperti menyalin beberapa teks dari Microsoft Word dan menempelkannya di Excel, biasanya ini menempelkannya dengan huruf tebal, miring atau dll. Memformat teks yang ada di Word tetapi saya ingin menempelkannya, seolah-olah saya telah menyalinnya ke notepad dan menyalinnya dari sana.
- Saya lebih suka menghindari kebutuhan untuk meniru pembukaan notepad.exe, menempel di sana dan menyalin lagi, karena saya berharap ada opsi yang lebih elegan / cerdas.
- Saya tahu ada opsi salin "Teks saja" di aplikasi Office tetapi tidak hanya itu tidak selalu berfungsi seperti yang Anda harapkan / inginkan, tetapi menyalin ke aplikasi lain tidak memiliki opsi itu.
Saya tahu bagaimana mendapatkan teks dari clipboard dengan "Get-Clipboard" dan kemudian mengaturnya dengan "Set-Clipboard" tapi saya tidak tahu DI MANA informasi format darn disimpan.
Jawaban
tl; dr
Hanya menelepon
Get-Clipboardakan memberi Anda representasi teks biasa yang diinginkan.Tambahkan
-Rawjika Anda ingin teks dikembalikan sebagai string tunggal multi-baris, bukan sebagai array baris.
Informasi latar belakang :
Aplikasi yang menyalin format berbasis teks kaya ke clipboard , seperti Word dan Excel menyalin RTF dan HTML, biasanya juga menyalin representasi teks biasa dari konten yang sama .
Get-ClipboardCmdlet PowerShell mengambil representasi teks biasa :
secara default di Windows PowerShell :
- Untuk mendapatkan salah satu format kaya (jika ada), gunakan -TextFormatTypeparameter dengan nilai pencacahan yang sesuai. [1]
selalu dalam PowerShell [Core] v6 + , yang
Get-Clipboardhanya mendukung pengambilan teks biasa.Secara terpisah, di kedua edisi PowerShell, Anda dapat menggunakan
-Rawsakelar untuk meminta agar teks multi-baris di clipboard dikembalikan sebagai string multi-baris tunggal daripada array baris , yang merupakan default.
[1] Untuk mengekspresikan perilaku default dengan argumen eksplisit:
Get-Clipboard -Format Text -TextFormatType UnicodeText; dokumentasi tidak menentukan apakah dan bagaimana nilai enumerasi Textberbeda.