[tips]Windowsにコマンドラインからペーストできるツールをつくる
Mac OSXにはコマンドラインからクリップボードに貼りつけられたテキストを出力するためのpbpasteコマンドがあります。
一方、Windowsにはコピーを行うための「clip.exe」は存在していますがペーストするコマンドはありません。
そこで、「.Net Framework」を使って簡単につくってみましょう。
準備するもの
必要なものは以下のとおりです。
- コマンドプロンプト
- コンパイラ
- メモ帳
コマンドプロンプトは「ファイル名を指定して実行」から「cmd」と入力して「OK」をクリックすれば起動します。
メモ帳はメモ帳ですね。
もうひとつ、コンパイラですがWindows7以降では標準で「.Net Framework」のコンパイラがインストールされています。
使えるようにするために環境変数PATHへ設定すれば使えるようになります。
コンパイラのある場所
Windows10では以下の場所にあると思います。
32bit版であれば
C:\Windows\Microsoft.NET\Framework\v4.0.30319
64bit版であれば
C:\Windows\Microsoft.NET\Framework64\v4.0.30319
環境変数PATHへ設定するには次のようにします。
set PATH=C:\Windows\Microsoft.NET\Framework\v4.0.30319;%PATH%
これで上記のコマンドを実行したあとはコマンドプロンプトを終了するまでコンパイラを利用することができます。
ツールを書こう
ツールはC#というプログラミング言語で書いていきます。
以下へ例を書いておきますので参考にしてください。
using System;
using System.Windows.Forms;
namespace com.nalulabo.clipboard {
public class PbPaste {
[STAThread]public static void Main(String[] args) {
Console.Write(RecvClipboard());
}
private static string RecvClipboard() {
if(Clipboard.ContainsText()){
return Clipboard.GetText();
} else {
return "";
}
}
}
}
あとはこれを「paste.cs」というファイル名にして保存します。
コンパイルしよう
さきほどの環境設定PATHの設定がうまくいっているのであれば以下のコマンドを実行すれば「paste.exe」が作成されます。
csc /target:exe /out:paste.exe paste.cs
使い方
たとえば、「dir」コマンドでフォルダ内のファイルとフォルダの一覧を表示したものをコピーして貼り付けるとしましょう。
dir | clip
これでクリップボードにコピーされているはずです。
次に、さきほどコンパイルしたツールを利用してコピーされた内容を出力しましょう。
paste
うまくdirの結果が表示されたでしょうか?