• ベストアンサー

ファイルを別フォルダへ格納するには?

よろしくお願いします。 WindowsXPでのMS-DOSバッチについての質問です。 あるフォルダの中に多数のファイルがあります。 この多数のファイルのファイル名の中のキーワードを拾い、 AAAというキーワードを含むファイルであればAAAという フォルダにそのファイルを移動し、BBBというキーワードを 含むファイルであればBBBというフォルダにそのファイルを 移動する・・・ということを可能とするバッチは どのようにすれば作成できますか? どうぞよろしくお願いいたします。

  • nao-k
  • お礼率92% (695/752)

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.4

>ファイル名に空白(スペース)が含まれているとうまく動作しない なるほど、普段ファイル名にスペースを入れないので気が回りませんでした。 修正してみました。 ---------------------------------------------------------------- @echo off findstr /L /M "AAA" *.txt >filelist.dat IF %ERRORLEVEL% EQU 0 FOR /F "delims=" %%i in (filelist.dat) do move "%%i" AAA findstr /L /M "BBB" *.txt >filelist.dat IF %ERRORLEVEL% EQU 0 FOR /F "delims=" %%i in (filelist.dat) do move "%%i" BBB del filelist.dat

nao-k
質問者

お礼

ご回答、ありがとうございます。 試してみました。目的としていた動作をしました。 非常に助かりました。

その他の回答 (3)

  • toshi_2000
  • ベストアンサー率30% (306/1002)
回答No.3

No.1です。 BSLスーパーバッチ/メニュは、フリーです。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

こんな感じで、 両方のキーワードが含まれている場合は、最初のマッチングで振り分けされてしまいますが。 ---------------------------------------------------------------- @echo off findstr /L /M "AAA" *.txt >filelist.dat IF %ERRORLEVEL% EQU 0 FOR /F %%i in (filelist.dat) do move %%i AAA findstr /L /M "BBB" *.txt >filelist.dat IF %ERRORLEVEL% EQU 0 FOR /F %%i in (filelist.dat) do move %%i BBB del filelist.dat

nao-k
質問者

お礼

ご回答、ありがとうございます。 この場合、ファイル名に空白(スペース)が含まれていると うまく動作しないということはありますか? こちらではうまく動作しておりません。

  • toshi_2000
  • ベストアンサー率30% (306/1002)
回答No.1

標準機能では、できないようです。 バッチファイルの機能を拡張するBSLツールを使用すれば 出来るかも知れません。

nao-k
質問者

お礼

ご回答、ありがとうございます。 BSLツールとは、フリーウェアでしょうか。 標準機能で検討しております。

関連するQ&A

  • 1つ上の階層にフォルダを移動させるバッチファイル

    windows XPで下記のようなバッチファイルを作成したいです。 aaaフォルダ内にyyy.batと111フォルダがあり、111フォルダの中にbbbフォルダとcccフォルダがあるとします。なお、bbb、cccフォルダ内にはファイルが存在しています。 そしてaaa、bbb、cccの各フォルダの名称は可変します。 この状態でyyy.batにbbb、cccフォルダをaaaフォルダ内に移動させる(一つ上の階層に移動させる)バッチプログラムを作成したいと思っています。 どのようにすればいいのでしょうか。 お分かりの方、お教えいただけないでしょうか。 よろしくお願いいたします。

  • カレントフォルダ以下のファイルの検索と結合バッチファイルの記述のしかたを教えてください。

    初心者です。 バッチファイルを作りたいのですが、 記述方法を教えていただきたいのです。 1のフォルダに、 ・aaa.txt ・bbb.txt ・ccc.txt があり、 2のフォルダにも ・aaa.txt ・bbb.txt ・ccc.txt があるような構造で、そのようなフォルダは複数あり、 それぞれaaa.txt bbb.txt ccc.txtが入っています。 これを、最終的には 同じファイル名は1ファイルにまとめて tougou_aaa.txt というテキストを作りたいと思っています。 まとめたテキストの中は、フォルダ1~複数(数は場合により違います)のaaa.txtが縦にずらっとくっついた状態です。 これを、b c d f~(ファイルの数も場合により異なりますが、上限はあり、ファイル名も固定です。)ファイルまですべて行い、 tougou_bbb.txt tougou_ccc.txt なども一度にできてほしいのです。 わかる方がいらっしゃれば、何卒宜しくお願い致します。

  • デスクトップ上に作業フォルダがあるか無いかの判断について

    デスクトップ上に作業フォルダがあるか無いかの判断について 以下、ファイルサーバ(Windows2003SV EE)にworkという共有フォルダがあり、 その配下に4つのファイル(BATとEXE)があります。 この4つのファイルをクライアントPCよりファイルサーバへUNC接続を行い、 クライアントPCに持ってくるのですが、その際、クライアントPCのデスクトップ上に 作業用フォルダを作成(以下の例ではwork)し、その配下へ4つのファイルをコピー しAAAとBBBを移動.BATを起動(AAA.BATとBBB.EXEはWindowsフォルダ配下へ)、 DELFOLDER.BATを起動すれば、workフォルダが削除されるという作りになっています。 しかし、作業者がworkフォルダの作成を忘れてしまい、デスクトップ上にコピーして しまった場合にDELFOLDER.BATを実行されると、IE、マイドキュメント、マイネットワーク ゴミ箱以外は全て綺麗に消えてしまいます。これでは非常に都合が悪いです。 そこで、デスクトップ配下にコピーした場合はフォルダを消さないで、自分自身のみを 削除する、workフォルダを作成されている場合は、workフォルダを削除する方法を 教えて下さい。バッチだけではムリであれば、可能な方法を教えて下さい。 ■フォルダ構成 ○ファイルサーバ(192.168.1.253) └work ←ここを共有している    └AAA.BAT    └BBB.EXE    └AAAとBBBを移動.BAT    └DELFOLDER.BAT ○クライアントPC(\\192.168.1.253\workで4ファイルをコピー) └デスクトップ     └work←これは作業用のフォルダ     └AAA.BAT→実行はしない     └BBB.EXE→実行はしない     └AAAとBBBを移動.BAT→AAA.BATとBBB.EXEはWindows配下へ移動,移動後、自分自身を削除     └DELFOLDER.BAT→自分自身の上のフォルダ(workになる)を削除するBAT

  • VBSでファイル名と同じフォルダを作成し、移動させる。

    はじめまして。こんにちは。ファイル名の取得、フォルダの作成、移動ができなくて困っています。 たとえばC:\testというフォルダの中にaaa1.txt aaa2.txt,aaa3,txt・・・zzz343.txtというようにファイルがランダムにあったとします。最初の3文字は英語と決まっています。そこでaaa1.txtやaaa2.txtがあればaaaというフォルダを同じ階層に作成し、aaa1.txtとaaa2.txtを新しく作成したaaaというフォルダに移動させる。これをすべてのファイルにたいして行いたいのですがどうすればいいのでしょうか? 参考になるURLやサンプルプログラムがありましたら教えて下さい。よろしくお願い致します。

  • フォルダ内の画像を、フォルダを開かずに別フォルダに移動したいのですが

    複数のフォルダ内に様々な拡張子の画像があります。 フォルダ名  JPG   GIF   BMP AAA    20個   100個   0個 BBB   120     10    2 CCC  2100      0   30 -------------------------------------------- DDD  2140個 これをDDDフォルダ内にJPGだけまとめたいのですが AAA開いてJPGだけを移動して、BBB開いて、、、、 したくなくて、一括処理でできるフリーソフト (あるいはWindows内のソフト)は あるでしょうか?

  • windowsバッチファイル ファイル移動

    windows2012R2で下記のようなバッチファイルを作成しました。 --------------- Set YYYY=%Date:~0,4% Set MM=%Date:~5,2% Set DD=%Date:~8,2% Set File=%YYYY%%MM%%DD% mkdir G:\bbb\xx1_%File% move G:\aaa\ttttt* G:\bbb\xx1_%File% --------------- としてもフォルダは作成されておりましたが、tttttから始まるファイル名が移動されてませんでした。 MS-DOSで move G:\aaa\ttttt* G:\bbb\xx1_20141110 とコマンドしたら、移動できたのですが。。。 どなたかお分かりの方がおりましたら、お願い致します。

  • バッチファイルでフォルダを作りたい

    ”123”というフォルダの中にバッチファイルがあります このバッチファイルを実行すると、フォルダ名を取得して、”123 あ”というフォルダと ”123 い”というフォルダをフォルダ”123”の中に作りたいのですができるのでしょうか? そして、このバッチファイルをコピーして、フォルダ”456”の中に貼り付けます。 ここでバッチファイルを実行すると、フォルダ”456”のなかに、”456 あ”と”456 い”というフォルダを 作れるようにしたいのですが。 お分かりの方、よろしくお願いいたします。

  • XCOPYで指定したフォルダとファイルをコピーしたい

    C:\AAAフォルダとC:\AAA以下のファイルをコピーしたくて、 XCOPY C:\AAA D:\BBB /E とすると、コピー先のD:\BBBにはAAAフォルダにあるファイルはコピーされるのですが、AAAフォルダそのものはコピーされません。 XCOPY C:\ D:\BBB /E とすればコピーできるのですが、そうするとC:\のほかのフォルダもコピーされてしまいます。 EXCLUDEオプションを使うには指定するファイルが多いため、あまり使いたくありません。(コピーする前にMDでコピー先にAAAフォルダを作成するのもなるべく避けたい) 知っている方がいらしたら教えて下さい。

  • サブフォルダ内のファイルを全部移動させたい。

    VBScriptのバッチでの作成を考えています。 あるフォルダ(名をFolderとします)の中に、たくさんのサブフォルダが あって、そこにあるファイルをすべてFolderに移動させたいと 思っています。 (ファイルはjpg画像ファイルだけです。) たとえば、Folderの下に、Folder_Bというサブフォルダがあって、 更にその下にFolder_Cがあり、その中には1.jpgというファイルが あったとしたら、バッチ実行後、Folderの直下に1.jpgがあり、 (可能であれば)フォルダはすべて消えているという具合です。 ファイルの移動自体はファイルシステムオブジェクトのFile.Moveで行い、 最後にディレクトリを列挙して削除していけばいいんだろうなという ところはわかります。 しかし、フォルダをサブフォルダも含めてすべて舐めて、そこから ファイルを移動していくというロジックに悩んでいます。 アドバイスいただけないでしょうか。

  • gooのフォルダに移動するには?

    aaaというフォルダ作成して、ファイルをaaaというフォルダに移動しました。 ところが、フォルダの中にいけません。 どうしたらいいの?

専門家に質問してみよう