ファイルの同期ツールについて質問です。

WindowsXPを使用しています。
ルートフォルダの下に子フォルダがたくさんあるとして、それぞれの子フォルダの下にファイルがあります。
「ルートフォルダ」の下が次のようになっている
-子フォルダ1
--hoge1.txt
--hoge2.txt
-子フォルダ2
--hoge1.txt
--hoge2.txt
--hoge3.txt
-子フォルダ3
--hoge1.txt
--hoge2.txt
・・・
例えばこんな感じの場合に、別のフォルダ(Aフォルダ)にhoge#.txtを階層構造なしにコピーしてきたいのですが、複数フォルダに同名ファイルが存在する場合(例えばhoge1.txt)は「最新の更新日時のものだけ」を取り出してきてくれるような方法を探しています。
Aフォルダの下
-hoge1.txt(最新のひとつだけ)
-hoge2.txt(最新のひとつだけ)
-hoge3.txt(最新のひとつだけ)
となってほしいんです。
何かツールなりやり方がありましたら教えてください。宜しくお願いいたします。

回答の条件
  • 1人3回まで
  • 登録:2007/09/09 14:08:36
  • 終了:2007/09/15 21:41:45

ベストアンサー

id:rafile No.1

rafile回答回数662ベストアンサー獲得回数242007/09/09 14:18:12

ポイント27pt

私ならですが、なんども実行するならツールを作りますが、一度だけなら次のようにします。

(1) ファイル管理ソフト mameをインストールする。

(2) mameを立ち上げ、検索(F)で、ルートファイルから*.*を検索する。このとき、サブディレクトリも検索する設定にする。

(3) mameをもう一つたちあげ、Aディレクトリを表示させておく

(4) 検索結果が一覧で表示されるので、すべてのファイルをマウスで選択する。

(5) これをAディレクトリのmameにドラッグ&ドロップする。このとき、オプションとして最新のファイルのみコピーを選択しておく。

以上で、同じ名前なら最新のファイルが結局コピーされるでしょう。

ファイル管理ソフトですが、サブディレクトリの検索ができ、コピー時に最新のものだけをコピーするようなソフトなら同じ方法で使えるはずです。(たいていのソフトは大丈夫、FileVisorとか)

id:cazzac

ありがとうございます。

何度も定期的に実行したいんです。

そうか、同期ツールというよりファイル管理ツールを使えばいいのかもしれませんね。

バッチをどうにか作っておけばできそうな気がしてきました・・。

2007/09/09 15:14:28

その他の回答(2件)

id:rafile No.1

rafile回答回数662ベストアンサー獲得回数242007/09/09 14:18:12ここでベストアンサー

ポイント27pt

私ならですが、なんども実行するならツールを作りますが、一度だけなら次のようにします。

(1) ファイル管理ソフト mameをインストールする。

(2) mameを立ち上げ、検索(F)で、ルートファイルから*.*を検索する。このとき、サブディレクトリも検索する設定にする。

(3) mameをもう一つたちあげ、Aディレクトリを表示させておく

(4) 検索結果が一覧で表示されるので、すべてのファイルをマウスで選択する。

(5) これをAディレクトリのmameにドラッグ&ドロップする。このとき、オプションとして最新のファイルのみコピーを選択しておく。

以上で、同じ名前なら最新のファイルが結局コピーされるでしょう。

ファイル管理ソフトですが、サブディレクトリの検索ができ、コピー時に最新のものだけをコピーするようなソフトなら同じ方法で使えるはずです。(たいていのソフトは大丈夫、FileVisorとか)

id:cazzac

ありがとうございます。

何度も定期的に実行したいんです。

そうか、同期ツールというよりファイル管理ツールを使えばいいのかもしれませんね。

バッチをどうにか作っておけばできそうな気がしてきました・・。

2007/09/09 15:14:28
id:loio No.2

loio回答回数342ベストアンサー獲得回数502007/09/09 15:42:28

ポイント27pt

バッチファイルとsedが使えるなら

dir d:\src /b /s > 1.bat

で、srcディレクトリのすべてのファイルを出力し、

sedで、行頭に"xcopy "を付加し、行末に" d:\dst"を付加します。

で最後に1.bat自体を実行するバッチファイルを作ればよいかと思います。

id:cazzac

ありがとうございます。

バッチファイルはそんなに詳しくは無い上に、小フォルダの階層が3つくらいでして。。。

しかしxcopyのオプションは色々と使えそうですね。

2007/09/10 22:33:44
id:airplant No.3

airplant回答回数220ベストアンサー獲得回数492007/09/11 00:13:57

ポイント27pt

Windowsの標準機能だけでできます。

コマンドプロンプト(DOSプロンプト)のfor文とxcopyの組み合わせ。

for /R c:\src %f in (*.txt) do xcopy /d %f c:\dest

forの/Rで再帰呼び出しをしています。

xcopyの/dで新しいファイルだけを上書きしています。

なお、手で叩く場合は、上記でいいのですが、いつも使う場合は、バッチにしておいたほうがいいですね。

お好みでxcopyに/iをつけたり、色々オプションを指定してもいいと思います。


hogecopy.bat

for /R %1 %%f in (*.txt) do xcopy /d %%f %2

動かすとき

hogecopy C:\src C:\dest
id:cazzac

ありがとうございました。

ちと勉強せねば・・。

2007/09/15 21:40:42

コメントはまだありません

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

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

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

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません