- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:バッチファイルで、ファイル名から自動振分したい)
自動振分のためのバッチファイル作成方法
このQ&Aのポイント
- バッチファイルを使用して、ファイル名に基づいてデータを自動的に振り分ける方法を学びます。
- 指定されたフォルダ内のデータを、ファイル名の先頭の4桁の数字に基づいて別のフォルダに自動的に移動します。
- 移動する際に、既に移動先フォルダ内に同じ形式のファイルが存在する場合は、削除してから移動します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Bの中にそれ以外のファイルがないとすると、 cd /d C:\B for %%A in (*) do call :sub "%%~A" goto :EOF :sub set A=%~1 set B=%A:~0,4% for /d %%D in (C:\A\*_%B%) do ( del /q "%%D" move %1 "%%D" ) >また、移動する際に、既にサブフォルダ内に「半角数字4桁_」から始まるファイル名のデータがある場合は、削除してから移動したいです。 の部分がよくわからなかったので、1ファイル移動する毎にフォルダを空にするようにしています。
その他の回答 (1)
- Tacosan
- ベストアンサー率23% (3656/15482)
回答No.1
フォルダ A の中のサブフォルダの名前が 「_半角数字4桁_」 で終わっていないように見えるのは気のせいだろうか. さておき, for で delim を適当に設定して (+ さらに必要であればオプションを追加して) 頑張るのが簡単だと思う.
質問者
お礼
早速の回答をありがとうございます。 ご指摘のように、Aフォルダの中のサブフォルダの名前が間違っておりました。正しくは「_半角数字4桁」で終わるフォルダ名です。 バッチファイルは見よう見まねで作成しており、どのようにして頑張ればいいのかがわかりません。恐縮ですが、もう少し詳しく教えていただけないでしょうか?
お礼
教えていただいたものでやってみると、うまくいきました。 また、補足コメントで教えていただきたいと書いたことは自己解決できました。 ありがとうございました。
補足
回答、ありがとうございます。 >また、移動する際に、既にサブフォルダ内に「半角数字4桁_」から始まるファイル名のデータがある場合は、削除してから移動したいです。 意味が通じる文章でなくて、すみません。 Bフォルダの中に毎週データが入ってくるので、BフォルダからAフォルダのそれぞれのサブフォルダにデータを移動するときは、既に「半角数字4桁_」から始まるファイル名のデータがあるのです。 今までは手動で移動させていたので、新たなファイルをAフォルダのサブフォルダに入れるときは、まず「半角数字4桁_」のデータを消してから、新たなデータを入れています。 Aフォルダのサブフォルダには、「半角数字4桁_」から始まるデータ以外にもデータが入っています。ただし、「半角数字4桁_」から始まる名前のデータは、常に1つだけにしておきたいのです。 よろしければ、それもご教示いただけないでしょうか?