こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

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

あるいは、フリーウェアのツールなどをご存知でしたら教えてください。

よろしくお願いいたしますm(__)m

投稿日時 - 2007-08-07 17:01:27

QNo.3235713

困ってます

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

こんにちは。
> 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

投稿日時 - 2007-08-10 15:48:09

お礼

本当にありがとうございました!!

先ほど動作確認したところ完璧な結果が得られました。「ショートカットの中身をみる」としていただいたことで、重複も問題なしでした。(自分自身ここまで考えていませんでした)

まさに求めていた答えをいただき、本当に感謝しております。

投稿日時 - 2007-08-11 13:22:59

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.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

投稿日時 - 2007-08-08 09:19:41

お礼

ご返答ありがとうございます。あと一歩のところでうまくいきませんでした。(私の説明不足が原因です)

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

よろしくお願いいたします。

投稿日時 - 2007-08-09 21:16:37

ANo.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 をご存知ならその方が楽なのですけど。
 知っていればそちらをアドバイスしますよ。
 バッチファイルだけでは編集とか必要です。
 いろいろと面倒かな。
・以上。

投稿日時 - 2007-08-07 23:45:31

お礼

早速のご返答ありがとうございます。よくわかりました。
意外と簡単なやり方でできてしまうのですね。

今回は私の説明不足で申し訳ありませんでしたが、「ショートカット」はまとめて1フォルダに保存してあるのですが、「画像」は複数フォルダに保存されているので『(5)』のところでつまづいてしまいました。

「画像」が1フォルダに保存されているケースに活用させていただきます。ありがとうございました。

P.S. VBScriptはまったくわからないので残念です。

投稿日時 - 2007-08-09 21:11:36

あなたにオススメの質問