• ベストアンサー

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

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

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

  • ベストアンサー
  • 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