アプリ版:「スタンプのみでお礼する」機能のリリースについて

 C:\B\の中に、必ず「半角数字4桁_」から始まるファイル名のデータが毎週入ります。
 「半角数字4桁_」以後のファイル名、拡張子は、その週によって変わります。

 C:\A\の中には、必ず「_半角数字4桁_」で終わるフォルダ名のサブフォルダがあります。
 このフォルダ名は、ずっと変わることがありません。

 C:\B\の中にあるデータを、ファイル名の最初の4桁の数字をもとに、C:\A\にあるサブフォルダに自動で移動したいです。また、移動する際に、既にサブフォルダ内に「半角数字4桁_」から始まるファイル名のデータがある場合は、削除してから移動したいです。


フォルダ構成です。
Cー|
   |-【A】
   |   |-【あいう_1234】
   |  |-【あい_2235】
   |   |-【かきくけ_8990】
   |   |-【アイウエオ_5014】
   |
   |-【B】
   |   |-1234_ABC.txt    ←このファイルは C:\A\【あいう_1234】に。
   |  |-2235_1534.txt   ←このファイルは C:\A\【あい_2235】に。
   |   |-8990_22.doc     ←このファイルは C:\A\【かきくけ_8990】に。
   |   |-5014_わをん.doc   ←このファイルは C:\A\【アイウエオ_5014】に。


 

自分でバッチファイルを記述してみたのですが、ここからどうしていいか分かりません。
 どなたか教えてもらえないでしょうか? よろしくお願いします。
 
 自分で記述してみたバッチファイルです。

cd C:\B

dir /b > C:\C\list.txt

set folder=C:\A
set file=C:\B
set Bat=C:\C

for /f "delims=" %%a in ( %Bat%\list.txt ) do if exist "%file%\%%a" move "%folder%\%%a"

"%to%"


PAUSE > NUL

A 回答 (2件)

フォルダ A の中のサブフォルダの名前が


「_半角数字4桁_」
で終わっていないように見えるのは気のせいだろうか.

さておき, for で delim を適当に設定して (+ さらに必要であればオプションを追加して) 頑張るのが簡単だと思う.
    • good
    • 0
この回答へのお礼

早速の回答をありがとうございます。
ご指摘のように、Aフォルダの中のサブフォルダの名前が間違っておりました。正しくは「_半角数字4桁」で終わるフォルダ名です。

バッチファイルは見よう見まねで作成しており、どのようにして頑張ればいいのかがわかりません。恐縮ですが、もう少し詳しく教えていただけないでしょうか?

お礼日時:2014/10/01 15:56

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ファイル移動する毎にフォルダを空にするようにしています。

この回答への補足

回答、ありがとうございます。

>また、移動する際に、既にサブフォルダ内に「半角数字4桁_」から始まるファイル名のデータがある場合は、削除してから移動したいです。

意味が通じる文章でなくて、すみません。

Bフォルダの中に毎週データが入ってくるので、BフォルダからAフォルダのそれぞれのサブフォルダにデータを移動するときは、既に「半角数字4桁_」から始まるファイル名のデータがあるのです。

今までは手動で移動させていたので、新たなファイルをAフォルダのサブフォルダに入れるときは、まず「半角数字4桁_」のデータを消してから、新たなデータを入れています。

Aフォルダのサブフォルダには、「半角数字4桁_」から始まるデータ以外にもデータが入っています。ただし、「半角数字4桁_」から始まる名前のデータは、常に1つだけにしておきたいのです。

よろしければ、それもご教示いただけないでしょうか?

補足日時:2014/10/02 10:19
    • good
    • 0
この回答へのお礼

教えていただいたものでやってみると、うまくいきました。
また、補足コメントで教えていただきたいと書いたことは自己解決できました。

ありがとうございました。

お礼日時:2014/10/02 11:54

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています