« フルパス名から親フォルダパス名を取り出す簡便な方法。 | トップページ | SETLOCAL ~ ENDLOCAL内部の環境変数をエクスポートする。 »

2006年10月25日 (水)

clip.exeで「Send To Clipboard as Name」を作る。

Windows 2003 Serverには、標準で、clip.exeが入っています。
Windows XPなどは、リソースキットを買うか、Windows 98 Resource Kit からもダウンロードできます。

以下のようなバッチファイルを作ります。

Send To Clipboard as Name.CMD

@ECHO %* | CLIP.EXE

または、

@(FOR %%0 IN (%*) DO @ECHO %%0) | CLIP.EXE

前者は空白区切り、後者は改行区切りです。

短い名前にしたければ、

@(FOR %%0 IN (%*) DO @ECHO %%~s0) | CLIP.EXE

ファイル名だけにしたければ、

@(FOR %%0 IN (%*) DO @ECHO %%~nx0) | CLIP.EXE

空のダミーファイルと関連付けでやる方法もあります。

Send To Clipboard as Name.NameOnClipboard
というサイズ0のファイルを作ります。

拡張子.NameOnClipboardに関連付けます。

[HKEY_CLASSES_ROOT\.NameOnClipboard\Shell\Open\Command]
@="CMD.EXE /C,(FOR %%0 IN (%*) DO @ECHO %%0) | CLIP.EXE"

[HKEY_CLASSES_ROOT\.NameOnClipboard\ShellEx\DropHandler]
@="{60254CA5-953B-11CF-8C96-00AA00B8708C}"

WSHのドロップハンドラを流用します。

« フルパス名から親フォルダパス名を取り出す簡便な方法。 | トップページ | SETLOCAL ~ ENDLOCAL内部の環境変数をエクスポートする。 »