あるファイルを検索して、別の場所にコピーするbatファイルをつくりたいのですが、
ファイルを検索するコマンドを教えてください。batファイルでなくても
いいです・・。
(いわゆる)Unix系OSなら find コマンドでファイルを検索できます。
しかし、batファイルということですから、MS-DOSもしくはMS-Windows での話と想定します。
この find コマンドを MS-DOS (MS-Windows のコマンドプロンプトなど含む)に移植したものがありますので、それを使えば検索できますし、同様に移植された cp コマンドと合わせて、使えば検索とコピーを一行で行うことが可能です。
find 検索対象のディレクトリ -name 検索するファイル名 -print -exec cp {} コピー先 \;
DOSコマンドを利用という前提で回答します。
dir, for, copy の組み合わせでできます。
たとえば、Cドライブのルート以下にある拡張子 pdf のファイルをすべてDドライブのルートへコピーするのであれば、以下のようにします。(バッチではなく、コマンドラインからでも可能)
for /f %%A in ('dir /b /s c:\*.pdf') do copy "%%A" D:\
ただし、ファイル名に空白を含むものについては、正常に動作しません。
Windows系コマンドプロンプトであれば
「dir /s ファイル名」で検索することができます。
ただし注意が必要で、
この/sオプションは、今いるフォルダの中のサブフォルダも
検索すると言う意味のオプションになります。
dirコマンドを実行する場所は、検索したい範囲の一番上の
フォルダで実行する必要があります。
コマンドプロンプトで直接実行する場合は、
大概開いた瞬間は「C:\Documents and Settings~」 << WinXPの場合
となっているはずですので
cd c:\
などとしてからdirを実行すればCドライブ全体が探せます。
batファイルから実行する場合の良い例が
にありました。
回答者 | 回答 | 受取 | ベストアンサー | 回答時間 | |
---|---|---|---|---|---|
1 | foobar_777 | 78回 | 66回 | 18回 | 2008-10-26 12:04:14 |
2 | lunch25 | 22回 | 15回 | 1回 | 2008-10-27 00:09:33 |
コメント(0件)