Drei Jahre später, in zivilisierteren Zeiten, haben wir Swift. Sie können ein kurzes Swift-Skript schreiben, um genau das zu holen, was Sie von OS Xs Pasteboard brauchen.
Fügen Sie das folgende schnelle 3-Snippet in eine neue Textdatei ein. Ich nannte mein pbpaste.swift
:
import Cocoa
let type = NSPasteboardTypeHTML
if let string = NSPasteboard.general().string(forType:type) {
print(string)
}
else {
print("Could not find string data of type '\(type)' on the system pasteboard")
exit(1)
}
Dann einige HTML kopieren und ausführen swift pbpaste.swift
aus dem Verzeichnis, in dem Sie die Datei setzen.
Yay, html! Uggh, OS X hinzugefügt eine Tonne benutzerdefinierte Markup (und ein <meta>
Tag ?!) - aber hey, zumindest ist es kein einfacher Text!
Hinweise:
NSPasteboardTypeHTML
ist eine besondere globale, die "public.html"
- Offensichtlich auf den String auswertet ist diese html spezifisch, so dass Sie wahrscheinlich entweder wollen würde:
- Name it
pbpaste-html.swift
, oder
- Lesen Sie den gewünschten Typ über die Befehlszeilenargumente
Es ist irgendwie langsam, weil es im laufenden Betrieb interpretiert, nicht kompiliert und ausgeführt wird. Compilation gibt mir ein 10x Speed-up:
xcrun -sdk macosx swiftc pbpaste.swift -o pbpaste-html
Dann rufen Sie einfach ./pbpaste-html
statt swift pbpaste.swift
.
Swift 2 Version:
import Cocoa
let type = NSPasteboardTypeHTML
if let string = NSPasteboard.generalPasteboard().stringForType(type) {
print(string)
}
else {
print("Could not find string data of type '\(type)' on the system pasteboard")
exit(1)
}