[要望]秀丸ファイラーのコピー&貼り付No.08920
YoungMoon さん 20/11/10 05:37
 
いつもお世話になります。
コピー&貼り付けの動作について、こんなことができたらいいなぁという要望です。

<いまの動作>
(1)hogehoge.xxxというファイルをコピー(CTRL+C)
(2)同じフォルダで貼り付け(CTRL+V)
(3)hogehoge - コピー.xxx という名前で自動的に貼り付けられる

<要望>
仕事上、ファイル名を「不具合報告_20201105.xxx」のようにして整理をしています。
上記の動作だと、(3)のあとでファイル名の「コピー」をいちいち削除しないといけ
ないんです。

たとえば、(3)のときに「hogehoge.xxx」という文字列を小窓に出して、そこでコ
ピー後のファイル名を修正できたらいいなぁ・・・と
(むか〜し使っていたWinFM2000で、確かそのオプションがあったような・・・)

わかりにくくて失礼しました(^_^;)
よろしくお願いします。

[ ]
RE:08920 [要望]秀丸ファイラーのコピーNo.08922
秀丸担当 さん 20/11/10 10:33
 

貼り付けの処理自体はWindowsの貼り付けと同じで、場合によっては裏でコピー処理
が働いたまま操作可能になてしまうので、貼り付けるファイルが1つだけの場合で、
かつ同じ場所の場合だけ自前でスクリプトで処理して、それ以外を普通の貼り付けに
するといいかもしれません。

そういうスクリプトを作ってみました。
例えば以下の内容をテキストエディタでc:\folder\test.jsとして保存し、ブック
マークのパスに「js:c:\folder\test.js」として指定します。

varSafeArray = GetClipboardFiles();
objArray = varSafeArray.toArray();
if(objArray.length == 1 ) {
  strPath = objArray[0];
  objFso = new ActiveXObject("Scripting.FileSystemObject");
  if( objFso.GetParentFolderName(strPath) == GetDirectory() ) {
    strBase = objFso.GetBaseName(strPath);
    strNew = Input( "貼り付けるファイル名(拡張子除く)",strBase );
    if( strNew && strNew != "" ) {
      if( strNew == strBase ) {
        Message("同じファイル名は貼り付けできません。");
      } else {
        strFileNameNew = strNew+"."+objFso.GetExtensionName(strPath);
        objFso.CopyFile(strPath, GetDirectory()+"\\"+strFileNameNew);
        Refresh(1);
        SelectItem(strFileNameNew,0x02);
      }
    }
    EndMacro();
  }
}
Paste();



[ ]