[ 新規に投稿する ]

スクリプトで固定ファイルを現フォルダーにコピーしたいNo.10221
にしむらX さん 22/07/19 11:28 [ コメントを投稿する ]
  お世話になっております。

趣味で集めているファイルを個別のフォルダーに振り分けているのですがその時に、固定のファイ
ル(フォルダー)を今開いているフォルダーにコピーしたいのです。

例えば、
1)hoge.jpg を"C:\image\風景\2022-07-xx"にコピー
2)hoge.jpgが国内の画像なら"C:\temp\国内"というフォルダーを"C:\image\風景\2022-07-xx"にコピー
3)"C:\temp\詳細情報未処理"というフォルダーを"C:\image\風景\2022-07-xx"にコピーなんて事を手
作業でやっています。実際には2)3)の選択肢は複数あります。

これをいちいち"C:\temp\"に移動せずにスクリプトで現フォルダーにコピーしたいのです。
ひとつのスクリプトでひとつのファイル(フォルダー)をコピーするものをリンクバーに登録して、
"C:\temp\"に移動する手間を省きたいと思っています。

どなたか知恵をお貸しできないでしょうか?

よろしくお願いします。
[ ]
RE:10221 スクリプトで固定ファイルを現フォルダーにコピーしたNo.10225
秀丸担当 さん 22/07/19 17:39 [ コメントを投稿する ]
  秀丸ファイラーClassicの機能というわけではないですが、決まったコピーをする場合はバッチファイルでやるのが一番簡単です。

例えば以下の内容を、copytothis.batというファイル名でどこかに保存して、実行すると、a.txt、b.txt、folder3にあるすべてのファイルを、c:\thisにコピーします。

copy c:\folder1\a.txt c:\this\*.*
copy c:\folder2\b.txt c:\this\*.*
copy c:\folder3\*.* c:\this\*.*

コマンドプロンプトでそのフォルダ上でcopytothis.batと入力してenterしても同じです。
バッチファイルの中で%1と書いておくと、その部分がバッチファイルで指定する1番目の引数に置き換わります。

copy c:\folder1\a.txt %1\*.*
copy c:\folder2\b.txt %1\*.*
copy c:\folder3\*.* %1\*.*

こうしておいて、例えばコマンドプロンプトで、
copytothis.bat C:\hoge
入力すると、%1の部分がC:\hogeに置き換わります。
このあたりのバッチファイルについての詳細は、Google検索などしてみるといろいろ情報が見つかると思います。

秀丸ファイラーClassic上で開いている現在のフォルダについては、ブックマークで%dと書いておくと、それが現在のフォルダに置き換わります。
バッチファイルがc:\xxx\copytothis.batという場所にあるとして、秀丸ファイラーClassicのブックマークのパスの部分に、
c:\xxx\copytothis.bat %d
と書いておくと、%dの部分が現在のフォルダに置き換わります。
%dが現在のフォルダになって、バッチファイルが実行され、バッチファイル内の%1が現在のフォルダに置き換わるといった感じになります。
[ ]
RE:10225 スクリプトで固定ファイルを現フォルダーにコピーしNo.10226
にしむらX さん 22/07/19 22:59 [ コメントを投稿する ]
  ご回答ありがとうございます。

例えば、C:\TEMPには以下のようなフォルダーがあります。(すべてフォルダーです)

C:\TEMP\国内
C:\TEMP\海外
C:\TEMP\都会
C:\TEMP\海
C:\TEMP\植物
C:\TEMP\動物

例として、この内の"国内"フォルダーを"C:\image\風景\2022-07-xx"にコピーしたいのです。
マウスで"国内"を選択してCTRL-C、"C:\image\風景\2022-07-xx"でCTRL-Vするのと同じ事ををスクリプトで
したいのです。
COPYコマンドやXCOPYでは"C:\TEMP\国内"フォルダーそのもの(それだけ)を"C:\image\風景\2022-07-xx"に
指定してコピーできず、また、各フォルダーのアイコンを変更しているので、それらの情報が欠落するのも
避けたいです。

スクリプトの範疇超えてますでしょうか?

よろしくお願いします。
[ ]
RE:10226 スクリプトで固定ファイルを現フォルダーにコピーしNo.10230
秀丸担当 さん 22/07/20 16:14 [ コメントを投稿する ]
  秀丸ファイラーClassicとしては、現在のフォルダのパスをバッチファイルや他のプログラムに渡すのをする程度で、特別なことはあまりないです。

まずは簡単なバッチファイルを書いてみて、それを%1に置き換えたりするといいと思います。
以下のようにしてみたらできるようでした。

●ブックマークの「パス」の部分に書く内容
"C:\temp\copytothis.bat" "%d"

●C:\temp\copytothis.batの内容
xcopy "C:\temp\国内" "%~1\国内" /S /E /I /EXCLUDE:C:\temp\EXCLUDELIST.TXT

●C:\temp\EXCLUDELIST.TXTの内容
desktop.ini
[ ]
RE:10230 スクリプトで固定ファイルを現フォルダーにコピーしNo.10232
にしむらX さん 22/07/20 17:54 [ コメントを投稿する ]
  お世話になっております。
早速のご回答ありがとうございます。

XCOPYには沢山のオプションがあるんですね。とても勉強になりました。

ただ、この方法でもカスタマイズしたフォルダーのアイコン情報は移行出来ず、
コピー先のフォルダーは標準のものになるようです。

ちょっとアプローチの仕方を考え直します。

ありがとうございました。
[ ]
RE:10230 スクリプトで固定ファイルを現フォルダーにコピーしNo.10233
秀丸担当 さん 22/07/20 18:05 [ コメントを投稿する ]
  バッチファイルに日本語が含まれていることがちょっと気になって、メモ帳で試してみたら、全然だめでした。
最近のメモ帳は、UTF-8が既定になっていて、それでバッチファイルを作ると文字化けして動かないです。
名前を付けて保存の選択で、ANSIにすると、日本語WindowsではShift-JISになって従来通りにできます。
UTF-8にするには、バッチファイルの先頭にchcp 65001と書けばいいみたいです。
ごく普通のことだと思っていたのですが、最近ではずいぶんややこしいことになってしまっていました。

秀丸エディタでは、普通に何も考えずにインストールしている場合は、従来通りです。(一応カスタムインストールや動作環境の設定で既定をUTF-8にもできます)
秀丸エディタと秀丸ファイラーClassicを使っていて、特に設定していなければ、普通に今まで通りのことが、今まで通りにできます。
[ ]

[ 新規に投稿する ]