人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

ファイルの同期ツールについて質問です。
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(最新のひとつだけ)
となってほしいんです。
何かツールなりやり方がありましたら教えてください。宜しくお願いいたします。

●質問者: cazzac
●カテゴリ:コンピュータ
✍キーワード:hoge txt WindowsXP ひとつ コピー
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● rafile
●27ポイント ベストアンサー

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

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

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

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

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

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

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

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

◎質問者からの返答

ありがとうございます。

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

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

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


2 ● loio
●27ポイント

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

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

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

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

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

◎質問者からの返答

ありがとうございます。

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

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


3 ● airplant
●27ポイント

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
◎質問者からの返答

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

ちと勉強せねば・・。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ