• ベストアンサー

検索結果を最新ファイルのみ1フォルダにコピーするには?

はずかしながら、ソフトウェア業界にいる者ですが、 検索結果のファイルを最新ファイルのみ残す( 複写)で うまくいかないので、他に方法がないか教えて頂きたいのです。 コマンドまたはユーティリティ、フリーソフトでの方法がありましたら 教えて下さい。 WINDOWS98SEにて、1998年から2005年までの1000近い仕様書ドキュメントを 検索にて検索結果を表示させて、1フォルダに最新のバックアップとして まとめコピー(複写)させようとしていますが、 ドキュメントは修正時の各フォルダに名称同一のまま格納されているため 検索結果を更新日付時刻順(昇順)で表示させた後、 全選択し、ドラッグ&ドロップで別フォルダに複写します。 (同一ファイルは「全て上書き」を指定する) しかしながら、更新日付時刻順(昇順)で複写されなく、 格納順で格納されるケースがあり、 現状では、1ヶ月単位の選択範囲を決めてコピーしています。 いい方法教えて下さい。

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

  • ベストアンサー
  • geso775
  • ベストアンサー率29% (15/51)
回答No.3

#1です。 秀丸使ってるんですね。 ならばgrepを使って目的の検索パスを取得してください。 その際サブフォルダ、ファイル名フルパス、ファイル名一覧に「レ」をつけて。 すれば、 c:\temp\hogehoge.txt(2) のようにパスが取得できると思います。 最後の(行数だと思う)が要らないのでソコは正規表現で置換。 検索に\(.+\)$ 置換は空白。 正規表現に「レ」つける。 すれば絶対パスが取得できる。 後はエクセルでも秀丸マクロでもいいので xcopy /d c:\temp\hogehoge.txt c:\temp2 にして一覧作成すればいいのでは?? #試してないですが。

tab0789
質問者

お礼

ありがとうございました。 秀丸のgrepでファイルのパスのみ取得が出来るのは 盲点でした。 かなり、検索置換grepと「毛の生えかかり」のマクロは使ってましたが ほんとに目からウロコでした。

tab0789
質問者

補足

すみません。ドキュメントはWORDとEXCELなので、 秀丸のgrepは使えそうにありません。 検索する文字が指定できないのです。 何かキーワードに心あたりありませんか。 試している内に、EOFを検索することにしました。 秀丸的には「¥z」で、パス取得は出来そうです。 あっ、でも日付時刻が取得出来てないので、日付昇順に並べられないです。 しくしく。 xcopy /dは、「日付が新しければ更新する」でしたか なるほど、置換でパスのみ残して、「xcopy /d 」と 「 c:\temp2」 を先頭と行末に追加置換して ベタでxcopy /d c:\temp\cyomecyome.doc c:\temp2 の羅列にすればいい。解決です。ありがとうございました。 (でも、検索に表示順にコピーする機能があればいいのに。 と思うのは渡井だけでしょうか?)

その他の回答 (2)

  • atnk08
  • ベストアンサー率13% (3/23)
回答No.2

たぶん、自動でやりたいなら、PG作成が一番簡単だと思います。 ディレクトリエントリ(言葉が古いか)情報を取得し、やりたい項目順序でソートし、一番上位のファイルだけリード&ライトするだけなので、PG初級レベルのテキストなんかに、必ずありそうですけど・・・。いかが。

tab0789
質問者

お礼

ありがとうございました。 確かにPG作ればですが、ユティリティですむもんならなんて 甘かったです。 ディレクトリエントリって 確か「>」のことですよね。 DOSで検索結果を出す方法コマンドがあるのでしょうか? 自宅使っているのは うぃん2000ですが。うーん なさそです。 会社で98調べてみます。 でも、回答いただきありがとうございました。

  • geso775
  • ベストアンサー率29% (15/51)
回答No.1

windowsの操作で出来るか考えていたのですが・・ 無理なのではと思います。 やはりPGMなどを作成するべきかと。 ロジック(考え方)としては、 1.検索したいファイルの絶対パスを取得する。 c:\hoge\readme.txt c:\hoge\hoge2\readme.txt ・・・ 2.結果を1フォルダーにコピー その際、更新日時?作成日時?に注意して。(ファイルが新しければ上書き、そうでないなら無視) 補足) 1.もしPGMで作成が困難ならフリーソフトなどユーティリティを探すと良いと思いますよ。 ファイルの検索パスを出力する機能のあるモノ 2.DOSのXCOPYコマンド、 /Dオプションが使えるのではないかと。

tab0789
質問者

お礼

ありがとうございます。 やはり、パスを取得してbatを作るしかないのですかね。 ベクターとか見回ってみましたが、同期とかフォルダーtoフォルダーとかしか 無いように見受けられました。 皆さん数手順を経てなんとかやっているのでしょうか。 ところで、検索結果からパスを取得って、簡単にできるんでしたっけ? パスさえ揃えば、秀丸とかでバッチは簡単に作れそうですが。 せめて、「パスを取得」するツールありましたらそれでもいいです。 もう少し回答を待ってみようかと思います。