• ベストアンサー

検索結果を最新ファイルのみ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フォルダーとかしか 無いように見受けられました。 皆さん数手順を経てなんとかやっているのでしょうか。 ところで、検索結果からパスを取得って、簡単にできるんでしたっけ? パスさえ揃えば、秀丸とかでバッチは簡単に作れそうですが。 せめて、「パスを取得」するツールありましたらそれでもいいです。 もう少し回答を待ってみようかと思います。

関連するQ&A

  • VBAで複数のフォルダから最新のファイルを検索してコピーするには?

    はじめましてこんにちは!エクセルを少しいじり始めた者です。 エクセルのVBAで複数のフォルダから最新更新日のファイルを検索して特定シートのセルD1からF20までをコピーして貼り付けるにはどのようにコードを書いたらいいのでしょうか?具体的に申し上げますと、ある特定のフォルダの中に複数のフォルダが入っており、複数のフォルダにはそれぞれ同じ名前の後に日付が入っていて、さらにその中には同じファイル名の後に日付が付いているファイルがあります。(「日本」フォルダの中に「日本200401」、「日本200402」、「日本200403」フォルダが入っていてさらにそれぞれのフォルダ内には「全国200401」」、「全国200402」、「全国200403」みたいな感じでフォルダ名と同じ日付が付いたファイルが入っています。) その複数のフォルダの中から最新更新日時のファイルだけを開いて特定のシートからデータをコピーして貼り付けるにはどのようにコードを記述したら良いのでしょうか?

  • フォルダ内のファイル並べ替えについて

    Windows10が入ったPCを使っております。 日頃フォルダに写真を保存することが多いのですが, 「出来たらいいけど,方法がわからないなぁ…」と思うことがひとつあります。 それは写真(ファイル)を《最初に(フォルダ内に)保存した日付順》に並べ替えることです。 例えばこういう写真データがあったとします。 (1)ファイル名:Yukie/フォルダ格納日[3/21]/最終更新日[3/30] (2)ファイル名:Masao/フォルダ格納日[3/24]/最終更新日[3/29] (3)ファイル名:Kaoru/フォルダ格納日[3/28]/最終更新日[3/28] ファルダ内の並べ替えにおいて,ファイルサイズや最終更新日で並べ替えることは簡単ですよね。上記の3つのファイルを最終更新日で並べ替えると… 降順だと(1)Yukie→(2)Masao→(3)Kaoruとなるはずです。 でもこのように最終更新日で並べ替えると,実際には少し以前に撮ったものが,最近撮った写真(ファイル)よりも新しい順番で表示されることになってしまいます。 私は,後でその写真(ファイル)を加工などして,そのファイルの最終更新日が最近(最新)になってしまったとしても,《最初に(フォルダ内に)保存した日付順》にいつでも並べ替えられたらいいなぁと思っております。 降順で(3)Kaoru→(2)Masao→(1)Yukieとなるように。 これは可能なのでしょうか? 可能だとしたら,どのような並べ替えをすればよいのでしょうか? 極めて初歩的な質問でしたらすみません。 どうかご教示ください。

  • ファイル検索のアルゴリズムについて

    ファイル検索のアルゴリズムで一番高速なアルゴリズムについて教えて下さい。 やりたいことは、 あるフォルダ以下のファイル(フォルダであれば更にその下まで)検索し、 現在の時刻から一番近い更新日時の早い順にファイルを10個検索するというものです。 ファイル本体をすべて検索するプログラムについてはできていまして、 現在の時刻から一番近い更新日時の早い順にファイルを10個検索する方法に関して 高速なアルゴリズムがありましたら教えて下さい。 プログラミング言語がPHPなのでPHPで実現可能なアルゴリズムですと嬉しいです。

    • 締切済み
    • PHP
  • フォルダの検索結果を印刷したい

    パソコンでフォルダの検索をかけた結果を印刷したいのですが・・・ 検索結果に200近くのフォルダが存在しコピーはできてもワード等に貼り付けが出来ません。 いくつかのファイルが取り込めないと出てくるのですが・・ どうやったら、検索結果を印刷できるのでしょうか?

  • VBScript フォルダ以下からファイルの検索、コピー

    VBScriptはまったくの初心者ですので、自分なりに調べてはみたのです がどうしてもわからなかったため質問しています。 OSはWinXPになります。 VBScriptで特定のフォルダ(C:\AAA\)以下からファイル(*.txt)を検索し てコピーするプログラムを書きたいです。 C:\AAA\・・・\*.txt 指定したフォルダからファイルを検索をすることはできたのですが、サ ブフォルダがたくさんある場合のファイル検索ができませんでした。 コピーの仕方は検索したファイルから最新のタイムスタンプのファイル以外を別フォルダにコピーしたいです。 あとわかりやすいVBScriptについて記載されているサイトも教えていただけると助かります。

  • フォルダー内の最新更新エクセルファイル

    勤怠処理を行っています。 記録の方法は、各課や係別にフォルダーがあって、その中に社員が月毎に勤務時間をエクセルファイルで記録しています。 ¥**¥A部¥B課¥C係¥社員A¥12月.xls と言うような感じで構成されています。A部より下層はフォルダーが複数存在します。 この状態で、A部のフォルダーをユーザーが指定すると、下層のフォルダーを全て検索し、最下層の最新更新日の.xlsのフルパスとファイル名を取得して、それをシート上に表示したいのです。 フォルダー内全てのファイルの最終更新日を取得する方法は検索すると見つかります。それをいじって日付を比較して最新日を抜き出せばいいのでしょうが、コマンドの意味が判っていないので上手く行きません。 完全に「教えて君」で申し訳有りませんが、宜しくお願い致します。

  • フォルダごとコピーしたときの更新日付

    フォルダごとコピーしたときの、フォルダの更新日付がどうなるのかわかりません。 このような場合、更新日時はどうなるのでしょうか。 (1)【パソコンA】  ・「テスト」フォルダを2/9作成 (更新日時2/9)  ・「テスト」フォルダ内に「test.doc」ファイルを作成(更新日時2/9)      ↓ (2)これを2/10にサーバーにコピーすると、  ・「テスト」フォルダの更新日付は2/10  ・「test.doc」ファイルの更新日付は、2/10         ↓ (3)【パソコンA】の「test.doc」を2/11に修正して更新。(更新日時は2/11)      ↓ (4)これを、2/12にサーバーに「テスト」フォルダごとコピーすると、   ・「テスト」フォルダの更新日付は、2/12ですか、それとも2/10?   ・「test.doc」の更新日付は、修正した2/11でしょうか? よろしくお願いします。

  • 二つのファイルを比較して検索結果を知りたいです。

    フォルダAの中には複数のフォルダとファイルがあり 同様に フォルダBの中には複数のフォルダとファイルがあります。 AとBは同じ内容のフォルダやファイルもあれば 更新されてるのもあります。 それを一発でわかるツールや方法やソフトウェアはありますか? 二つのファイルを比較して検索結果を知りたいです。 win8です。

  • 指定したフォルダ内の最新ファイルのみをコピー

    WinXP Pro × VB6 指定したフォルダ内で「更新日時」が最新のファイルの名前を取得するにはどのようにすればよいでしょうか? ファイル名がランダムのため、困っています。

  • ウィンドウズのファイル検索での結果をエクセルやテキストファイルに落とす方法?

    会社のファイルサーバーの整理を行なっていますが、同じファイルがいろんなフォルダーにコピーされて複数存在しています。 これらのファイルを「ファイルサイズ」「作成日付」で特定して、担当者に整理させようと思っていますが、ウィンドウズのファイル検索で検索された結果をテキストファイル等に変換して保管する方法はないでしょうか? どなたか、よろしくご教授ください。