質問です。AとBというフォルダが2つあります。Aには画像が3000枚、Bには画像が4000枚入っています。Bの4000枚のうち3000枚はAの3000枚と同じものです。画像の名称もおなじです。違う点はBの方の画像は圧縮かかっていない状態でAの方は最高圧縮がかかっている点です。ここでBのAにはない画像(残りの1000枚)を削除したいのですがなにか便利な方法はないでしょうか?

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答13件)

id:ululun No.1

回答回数267ベストアンサー獲得回数19

ポイント5pt

A=Bで且つBの中からAに含まれない画像を削除したいのであるならば


Bのフォルダを削除。

AをBという名称で複製>解凍など


これがもっとも簡単だと思われます。


Bの画像からAに含まれない画像を抜き出すという作業なら別ですが…

id:kuzeyuki

説明不足でした。今回の場合の圧縮とはフォルダに圧縮がかかっているのではなくフォルダの中の画像にJPEGで画質を落としたものと落としていないものという意味です。

2005/10/30 20:05:43
id:aska186 No.2

回答回数158ベストアンサー獲得回数0

ポイント13pt

http://ykr414.com/dos/

コマンドプロンプトを使ってみよう!

こういう場合にはコマンドプロンプトが使えると便利です。

http://www.vector.co.jp/soft/dos/util/se044213.html

UNIQ(MS-DOS / ユーティリティ)

http://www.vector.co.jp/soft/win95/util/se015007.html

gawk win32(Windows95/98/Me / ユーティリティ)

1.Aのフォルダで

> dir /b *.* > list

として、ファイル名の一覧を出力する。

2.このlist をBのフォルダに移動させて

> dir /b *.* >> list

とすると、Bフォルダのファイル名が追記される。

3.listファイルをソートし、重複行を削除する。

> sort list | uniq | gawk ”{print ¥”del¥”,$1}” > list.bat

*uniq, gawk はそれぞれ上記のフリーソフト

*”や¥は半角で入力

4.バッチファイルlist.bat を実行する。

> list.bat

5.ファイル list, list.bat は削除。

これで完了です。

http://nomal.que.ne.jp/kohi/freesoft.shtml

�ӂ[�̂ف[�ނ؁[��

という作業を自動でやってくれるフリーソフトは沢山ありそうです。

id:kuzeyuki

ありがとうございます。参考にさせていただきます。

2005/10/30 21:50:05
id:takosan No.3

回答回数222ベストアンサー獲得回数7

ポイント13pt

http://winfaq.jp/

Windows.FAQ - ウィンドウズ処方箋

画像の名称=ファイル名ということでいきます。OSはWin2K/XPという仮定です。

コマンドプロンプトを開いてフォルダBに移動します。コマンドラインに以下のコマンドを入れます。


X:¥hoge¥フォルダB¥>for %I in (*.*) do if not exist フォルダA¥%~nxI do del %I


試しに2つか3つファイルを置いたテスト用フォルダを使ってテストしてみてください。

for コマンドの詳細はコマンドプロンプトから for /?で表示されます。


基本構文は以下のようなものです。

FOR %変数 IN (セット) DO コマンド [コマンドパラメータ]

id:kuzeyuki

ありがとうございます。挑戦してみます。

2005/10/30 21:51:27
id:mattarin No.4

回答回数11ベストアンサー獲得回数0

ポイント13pt

Perlが使えるなら以下のソースで可能。


#!/usr/local/bin/perl

$dir_a = ”フォルダAのパス”;

$dir_b = ”フォルダBのパス”;

my %file_a;

opendir(DIR, $dir_a);

while(my $file = readdir(DIR)) {

next if ($file eq ’.’ || $file eq ’..’);

$file_a{$file} = 1;

}

close(DIR);

opendir(DIR, $dir_b);

while (my $file = readdir(DIR)) {

unlink($dir_b.’/’.$file) if ($file_a{$file} != 1);

}

closedir(DIR);

id:kuzeyuki

ありがとうございます。

2005/10/30 21:51:48
id:TransFreeBSD No.5

回答回数668ベストアンサー獲得回数268

ポイント13pt

http://itpro.nikkeibp.co.jp/free/NT/WinKeyWord/20040805/1/xcopy....

Windows���ޥ��ɽ�����xcopy��

すみません。手元で検証できないので幾らか憶測が入っています。


1.以下の操作で一旦Aフォルダの内容が消えます。操作ミスした時のためにも、まず両フォルダをバックアップしてください。

2.コマンドプロンプト(正確な名称を忘れました。スタートメニューのアクセサリに入っていたと思います)を立ち上げてください。

3.「xcopy /u 」と打ちます。リターンキーはまだ押さないでください。最後にスペースが要ります。

4.フォルダBをコマンドプロンプトにドラッグ&ドロップします。

5.コマンドプロンプトにスペースを入れます。

6.フォルダAをコマンドプロンプトにドラッグ&ドロップします。

7.コマンドプロンプトに「xcopy /u ”フォルダBのパス” ”フォルダAのパス”」と入力されている事を確認します。

8.リターンキーを押します。


これでフォルダAにフォルダBの該当するファイルのみがコピーされていると思います。確認してください。

あとはフォルダBを消してフォルダAの名前を変えたあと、バックアップからフォルダAを戻してください。


Win2kまではこれが使えたと思います。WinXPは使った事がないのでわかりませんが、たぶん大丈夫です。

id:kuzeyuki

丁寧にありがとうございます。もう少し募集します。

2005/10/30 21:53:11
id:tokusa No.6

回答回数16ベストアンサー獲得回数0

ポイント13pt

重複ファイル検索・削除 UnDup.exe

というソフトがあります。

オプション設定で名前のみ一致するものを検出するように設定できるので

試してみたらいかがでしょうか。

id:kuzeyuki

ありがとうございます

2005/11/01 13:08:45
id:takosan No.7

回答回数222ベストアンサー獲得回数7

http://winfaq.jp/wxp/

Windows XP.FAQ

3です。ポイント不要です。

コマンドがちと間違っておりました。

さっきのコマンドのうち後ろの方の Do は不要です。

ちなみに、 del %I を move %I フォルダCとすれば、目的のファイルを移動する事ができます。

id:kuzeyuki

ありがとうございます。

2005/11/01 13:09:21
id:asiamoth No.8

回答回数3ベストアンサー獲得回数0

ポイント12pt

http://www.vector.co.jp/soft/win95/util/se302463.html

重複画像チェッカー(Windows95/98/Me / ユーティリティ)

「同じ画像だけど圧縮率が違う物を削除したい」ということですよね?

上記のソフトが便利ですよ。

http://www.vector.co.jp/soft/win95/util/se057348.html

AikoWin(Windows95/98/Me / ユーティリティ)

それとは別に、「複数のフォルダに全く同じファイルがある」場合は、上記のソフト(AikoWin)が便利です。

id:kuzeyuki

ありがとうございます。でも逆です。重複しているものを削除してはいけません。

2005/11/01 13:13:16
id:temp_hdo No.9

回答回数12ベストアンサー獲得回数0

ポイント12pt

http://ja.wikipedia.org/wiki/GUI

グラフィカルユーザインターフェース - Wikipedia

少し乱暴ですが、スクリプトもコマンドプロンプトも使わない方法ということで。


1. AフォルダをコピーしてCと名づけます。

2. BフォルダのファイルをすべてCフォルダに「移動」します。このとき、上書き確認のメッセージが出るのですべて「いいえ」にします。(キーボードのNを押し続けると楽かも)

3. Cフォルダを削除します。


以上です。

id:kuzeyuki

わかりやすいですね。ありっていえばありかも・・

2005/11/02 16:31:21
id:damukuru No.10

回答回数1ベストアンサー獲得回数0

ポイント12pt

URLはダミーです。


※ 現在のAフォルダ全体をコピーしてA’フォルダを作っておく


1) Bフォルダの全てのファイルをAフォルダ内に移動します。

2) すると、「このファイルには既に’○○’ふぁいるが存在します。上書きしますか?」というダイアログが出てくる。

3) そこで、「いいえ」を押す。(3000回聞かれるので、キーボードの「N」を押しっぱなしにしておくと楽です)

4) すると、Bフォルダには、Aフォルダと同じ名前のファイルだけ残ります。

5) Aフォルダには削除したいファイルが入ってしまっているので、最初に作ったA’フォルダを使えば、ご希望通りになるはずです。

id:yareyaredayo No.11

回答回数65ベストアンサー獲得回数2

ポイント22pt

私もコマンドは使いこなせますが、あまりにも難しく見える内容や

ソフトを必要として大変なものが多いので、ファイルの入れ替えっこだけで済む方法を。


1Bのフォルダをコピーしておきます。

2上記のBコピーフォルダ内へ、Aフォルダの中のファイルをすべて選択しドラッグコピーします。

 名前が同じなのでBのファイルがAで上書きされて、

 かつBフォルダの中で上書きされたAのファイルたちだけが選択された状態になります。

3編集メニューから、「選択の切替」を選択します。

 これにより、AにないBの残りの画像が選択されます。

4この選択のまま、今度はコピーではない、元のBフォルダにドラッグして上書きコピーします。

 上書きコピーが終わると、相変わらず3で作られたAにはないBの画像が選択されたままの状態になっています。

5その選択のまま、削除します。

6おしまいに、分類に使ったBフォルダのコピーを削除して終了です。


これだけです。ソフトもコマンドも要らず、すっきり終了です。

ただ、AとBのファイルの拡張子が違う場合は上記の前にRenameが必要です。 その場合はまた伝えますので返信下さい。

id:kuzeyuki

おぉほぼ同じこと考えていました!

2005/11/02 16:33:33
id:o-murasaki No.12

回答回数1ベストアンサー獲得回数0

ポイント22pt

http://www.hatena.ne.jp/1130660551

人力検索はてな - 質問です。AとBというフォルダが2つあります。Aには画像が3000枚、Bには画像が4000枚入っています。Bの4000枚のうち3000枚はAの3000枚と同じものです。画像の名称もおなじ..

一時フォルダXを作成しフォルダAのファイルを一時フォルダXにコピー(Aをバックアップ)。

フォルダBのファイルをフォルダAに上書きコピー。

エクスプローラにて「作成日時」を表示するチェックを入れておく。

フォルダAに元々無かったファイルにはその新規ファイル作成時(上記上書きコピー時)のタイムスタンプが出る。

 したがって新規ファイル作成(更新日時ではない)が上記上書きコピーの時刻である1000ファイルをソートした後選択して削除する。

フォルダAをフォルダBにリネーム。

最初にバックアップしたフォルダXをフォルダAにリネーム。

id:kuzeyuki

なるほど。

2005/11/02 16:34:57
id:notapachi No.13

回答回数213ベストアンサー獲得回数18

ポイント12pt

「Macintoshなら」という条件付きですが。


1. A,B両方のフォルダを複製する。

2. Aのフォルダ内のファイルに「ラベル」で色を付ける。

3. 「2」で色を付けたファイルをBのフォルダに移動する。

4. 「上書きしますか」で「はい」を選択する。

5. Bのフォルダを開け、「並び替え順序」で「ラベル」を選択する。

6. 色の付いたファイル(=Aに入っていたファイル)を削除する(表示を「リスト」にすると楽にできます)。


ここまでの操作で、「BにあってAにないファイル」を抽出することができます。このファイル群を仮に「C」と呼ぶことにします。


7. Bのフォルダを再びコピーする。

8. Cに「ラベル」で色を付ける。

9. CのファイルをBのフォルダ内に移動させる。

10. 「上書きしますか」で「はい」を選択する。

11. Bのフォルダを開け、「並び替え順序」で「ラベル」を選択する。

12.色の付いていないファイル(=Cのファイル)を削除する(表示を「リスト」にすると楽にできます)。


ここまでの操作で「BとA共通の名前を持ったファイルをBから抽出」することができました。あとは、不要となった空のフォルダを2つ削除すると完了です。


使ってもよいMacintoshがあるようでしたら、お試し下さい。

id:kuzeyuki

環境はあります。それではこれにて終了します。皆さんありがとうございました。

2005/11/02 16:36:49
  • id:denken
    すべていいえ

    > 2. BフォルダのファイルをすべてCフォルダに「移動」します。このとき、上書き確認のメッセージが出るのですべて「いいえ」にします。
    Shiftを押しながら「いいえ」を押すと「すべていいえ」と同じ状態になる、というのはマイナーでしたか。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません