• ベストアンサー

バッチファイルで、ショートカットから同名の元ファイルを検索して別フォルダにコピー

複数の画像(.jpg)ファイル(例:「CIMG0797.JPG」)のうち気に入ったものだけを、同じファイル名のショートカット(例:「CIMG0797.JPG へのショートカット」)として別フォルダに保存してあります。そのショートカット・リストから、同じ名前の元ファイルだけを選択してさらに別のフォルダにコピーしたいのですが、簡単に実行するには、どのようなバッチを組めばよいでしょうか? あるいは、フリーウェアのツールなどをご存知でしたら教えてください。 よろしくお願いいたしますm(__)m

質問者が選んだベストアンサー

  • ベストアンサー
  • pita-gora
  • ベストアンサー率70% (102/145)
回答No.3

こんにちは。 > 1点、私の説明不足を補足させていただき、改めてご回答いただけると非常に助かります。 > 【補足】 > 「画像(.jpg)ファイルが入っているフォルダ」がC:\Picture以下の複数フォルダに分散保存されていたとすると、どのようになりますでしょうか? たとえば、C:\Picture\Pic1、C:\Picture\Pic2、・・・Pic9とあった場合です。(それ以外の条件は記載いただいた内容のままです) これを見たとき、うーん!と正直困りました。Pic1 .... Pic9 までに重複する ファイル名があったらどうしようとか考えて、結局ショートカットの中身をみる のが一番良さそうと思いつきました。一応動作確認してます。 フォルダの条件は前回と同じく、ショートカットの入っているフォルダを c:\shotrcut 、コピー先を C:\tmp としたときのバッチ例です。 最後から2行目の find "C:" のところは、実際に複数の画像(.jpg)ファイルが 入っているフォルダのドライブ(Cドライブなら C: を、Dドライブなら D: )に 変えてください。 ----------------------------------------- sample.bat echo off pushd c:\shortcut for %%a in ( *へのショートカット.lnk ) do call :sub %%a popd exit /b :sub for /f "delims=" %%x in ('find "%1" "%*"^|find "C:"') do copy "%%x" C:\tmp goto :EOF

PC_de_AV
質問者

お礼

本当にありがとうございました!! 先ほど動作確認したところ完璧な結果が得られました。「ショートカットの中身をみる」としていただいたことで、重複も問題なしでした。(自分自身ここまで考えていませんでした) まさに求めていた答えをいただき、本当に感謝しております。

その他の回答 (2)

  • pita-gora
  • ベストアンサー率70% (102/145)
回答No.2

ショートカットの入っているフォルダを c:\shotrcut 、複数の画像(.jpg)ファイルが 入っているフォルダを C:\Picture 、コピー先を C:\tmp としたときのバッチ例です。 複数の画像(.jpg)ファイル(例:「CIMG0797.JPG」)は例のように空白の入っていない ファイル名であるという前提ですのであしからず。 ---------------------------------------- sample.bat echo off pushd c:\shortcut for %%a in ( *へのショートカット.lnk ) do call :sub %%a popd exit /b :sub copy c:\Picture\%1 c:\tmp goto :EOF

PC_de_AV
質問者

お礼

ご返答ありがとうございます。あと一歩のところでうまくいきませんでした。(私の説明不足が原因です) 1点、私の説明不足を補足させていただき、改めてご回答いただけると非常に助かります。 【補足】 「画像(.jpg)ファイルが入っているフォルダ」がC:\Picture以下の複数フォルダに分散保存されていたとすると、どのようになりますでしょうか? たとえば、C:\Picture\Pic1、C:\Picture\Pic2、・・・Pic9とあった場合です。(それ以外の条件は記載いただいた内容のままです) よろしくお願いいたします。

  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.1

★アドバイス ・次の手順でバッチファイルを作成して下さい。  (1)DIR コマンドでショートカットの一覧をファイルに保存  (2)一覧ファイルからコピーしたいと思うショートカットだけ抽出  (3)抽出したショートカット名から『 へのショートカット』という部分を   エディタの置換コマンドで削除します。  (4)これでコピーしたい画像ファイルの一覧が作成できる  (5)(4)で作成した画像ファイルの一覧をクリップボード編集ソフトで編集します。   編集箇所は   各行の先頭に『COPY C:\…\』という画像ファイルがあるフォルダ名を記述。   各行の最後にコピー先のフォルダ名を記述。  ※上記の編集を手動でやると大変ですのでクリップボードの編集ソフトを利用して   行います。『ClipFan』というソフトで文字列の先頭、最後に挿入できます。   http://www.vector.co.jp/vpack/browse/pickup/pw5/pw005944.html   http://www2u.biglobe.ne.jp/~shunbook/omocha/clipfan.htm   ↑   これダウンロードして利用。  (6)編集できたらバッチファイルを実行すればコピーできる ・一応手順は書きましたが分かりますか?  VBScript をご存知ならその方が楽なのですけど。  知っていればそちらをアドバイスしますよ。  バッチファイルだけでは編集とか必要です。  いろいろと面倒かな。 ・以上。

PC_de_AV
質問者

お礼

早速のご返答ありがとうございます。よくわかりました。 意外と簡単なやり方でできてしまうのですね。 今回は私の説明不足で申し訳ありませんでしたが、「ショートカット」はまとめて1フォルダに保存してあるのですが、「画像」は複数フォルダに保存されているので『(5)』のところでつまづいてしまいました。 「画像」が1フォルダに保存されているケースに活用させていただきます。ありがとうございました。 P.S. VBScriptはまったくわからないので残念です。

関連するQ&A

  • バッチファイルでフォルダを作りたい

    ”123”というフォルダの中にバッチファイルがあります このバッチファイルを実行すると、フォルダ名を取得して、”123 あ”というフォルダと ”123 い”というフォルダをフォルダ”123”の中に作りたいのですができるのでしょうか? そして、このバッチファイルをコピーして、フォルダ”456”の中に貼り付けます。 ここでバッチファイルを実行すると、フォルダ”456”のなかに、”456 あ”と”456 い”というフォルダを 作れるようにしたいのですが。 お分かりの方、よろしくお願いいたします。

  • バッチファイル 別ファイルにリストしてあるファイルをコピーしたい

    バッチファイルで、ファイル名前をリストしてあるの別ファイルを参照して、リストの名前のファイルを任意のフォルダにコピーしたいです。 ●条件 ・コピー元/コピー先は固定でよいです。 ・できれば、コピー元のサブフォルダのファイルも対象にしたいです。 (この場合、リストにもxxx\○○○.txt のように記述) 「for」コマンドを使うのでしょうか? 宜しくお願いいたします。

  • DOSバッチのコピーについて

    フォルダ内の複数ファイルを、別フォルダにコピーするバッチを作りたいと考えています。 具体的には、コピー元ファイルは、オリジナルファイル名+日付.CSVの法則で、100ファイル程度が毎日コピー元フォルダに出力されます。 コピーしたいファイルは、その都度、日付単位で変わるので、バッチ実行時に任意のコピーしたい日付を指定(入力)して、別フォルダに コピーさせたいのですが、何か方法ありますでしょうか? 尚、昔の馴染みがあり、理解しやすいので、DOSのバッチで実現できないでしょうか? 例 sample1_20081124.CSV sample2_20081124.CSV sample1_20081125.CSV sample2_20081125.CSV sample1_20081126.CSV sample2_20081126.CSV ↓ 20081125のファイルだけコピーする sample1_20081125.CSV sample2_20081125.CSV 宜しくお願い致します。

  • ショートカット先の実体ファイルのコピー方法

    あるフォルダの中に、複数のショートカット(フォルダ)があります。 ショートカット(フォルダ)のリンク先にはいくつかの実体ファイルがあり、それをバッチファイルのようなものを使って一度にコピーしたいです。 どのようにすればよいでしょうか? 検索して調べてみたのですがよく分かりませんでした。 ご回答いただければ幸いです。

  • フォルダのショートカットをバッチで生成したい

    度々の質問ですみません。 複数のパソコンに、同じ名前のフォルダを作成し、そのショートカットをデスクトップに作成することを、バッチで自動化したいと考えています。 バッチは、 1.フォルダの存在確認 2.なければ作成 3.そのフォルダのショートカットをデスクトップに作成 という流れです。 2.までは、拙い知識で何とかできましたが、3.ができずに困っています。 どなたかご教授いただければ幸いです。

  • バッチ実行時のショートカット

    バッチファイルを作って実行すると、「~へのショートカット」 とMS-DOSへのショートカットが作成されてしまいます。 フォルダのなかに目立つアイコンがたくさんになってしまって邪魔なので、 このショートカットを作らないようにしたいのですが、 どうしたらよいのでしょうか? バッチファイルに書きこむ、わけにはいかないですよね…? まれにショートカットが作成されないこともある気がするのですが… 教えていただけないでしょうか、よろしくお願いします。

  • 98SE、バッチファイルのショートカットについて

    Windows98 SEで、 バッチファイル(.bat)を作成後実行すると、何やら、そのバッチファイルへのショートカットが作成されてしまいます。 このショートカットが作られないようにはできないのでしょうか? よろしくお願いします。

  • バッチファイルにてフォルダのみをコピーしたい

    たくさんのフォルダが有って、その下にもサブフォルダがあります。 また、フォルダの中にはファイルも存在します。 このような状況の中、サブフォルダもフォルダもコピーせず、フォルダのみをコピーしたいのですが、バッチファイルにて可能でしょうか?

  • 1つ下のファイルをコピーするバッチファイル

    コマンドプロンプトで実行するバッチファイル(x.bat)で C:\Aというフォルダのさらに1つ下のフォルダ (このフォルダは1つのみで名前は毎回変化します) の中にあるc.mpgというファイルを D:\Bフォルダにコピーするバッチファイルを 作りたいのですがどのように記述すればよいのでしょうか。 例えば、C:\A\data_20120922195626というフォルダ (data_20120922195626というフォルダ名は任意の名前ですが C:\Aフォルダの中にはこのフォルダ1つしかありません) の中に\c.mpgというファイルがあるとします。 バッチファイル x.bat を実行すると D:\Bフォルダにc.mpgをコピーしたいのです。 なお、data_20120922195626というフォルダの名前は バッチファイルを実行する時には毎回異っていますが バッチファイル実行中は変化しません。 VBscriptやwshなどは使わずWindosXPの標準DOS機能のみで お願いします。(WindosXP SP3)

  • バッチファイルで複数フォルダのファイルを結合したい

    バッチファイルで複数フォルダの中にあるlist.txtというテキストファイルを結合するにはどのように記述すればよいでしょうか。 具体的には、 複数のフォルダがあり、 C:\test\202104026\list.txt C:\test\202104025\list.txt      : C:\test\20000101\list.txt というような感じで、 各フォルダの中にlist.txtというファイルが入っています。 list.txt以外にもいろいろなファイルが入っています。 各フォルダの中のlist.txtファイルの内容を結合した1個のファイルを生成するバッチファイル(test.bat)を教えてください。 よろしくお願いします。(Windows10)

専門家に質問してみよう