
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
No.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ファイル移動する毎にフォルダを空にするようにしています。
この回答への補足
回答、ありがとうございます。
>また、移動する際に、既にサブフォルダ内に「半角数字4桁_」から始まるファイル名のデータがある場合は、削除してから移動したいです。
意味が通じる文章でなくて、すみません。
Bフォルダの中に毎週データが入ってくるので、BフォルダからAフォルダのそれぞれのサブフォルダにデータを移動するときは、既に「半角数字4桁_」から始まるファイル名のデータがあるのです。
今までは手動で移動させていたので、新たなファイルをAフォルダのサブフォルダに入れるときは、まず「半角数字4桁_」のデータを消してから、新たなデータを入れています。
Aフォルダのサブフォルダには、「半角数字4桁_」から始まるデータ以外にもデータが入っています。ただし、「半角数字4桁_」から始まる名前のデータは、常に1つだけにしておきたいのです。
よろしければ、それもご教示いただけないでしょうか?
教えていただいたものでやってみると、うまくいきました。
また、補足コメントで教えていただきたいと書いたことは自己解決できました。
ありがとうございました。
No.1
- 回答日時:
フォルダ A の中のサブフォルダの名前が
「_半角数字4桁_」
で終わっていないように見えるのは気のせいだろうか.
さておき, for で delim を適当に設定して (+ さらに必要であればオプションを追加して) 頑張るのが簡単だと思う.
早速の回答をありがとうございます。
ご指摘のように、Aフォルダの中のサブフォルダの名前が間違っておりました。正しくは「_半角数字4桁」で終わるフォルダ名です。
バッチファイルは見よう見まねで作成しており、どのようにして頑張ればいいのかがわかりません。恐縮ですが、もう少し詳しく教えていただけないでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドプロンプトの「%1」と...
-
数あるファイルから、複数文字...
-
【バッチプログラム】フォルダ...
-
ftp処理でmove(移動)を行いたい
-
コマンドプロンプトでファイル...
-
【Access】エクスポート時のフ...
-
.batでファイル名から抽出して...
-
access,vbaでフォルダ内のファ...
-
フォルダ内の更新日時が一番新...
-
バッチファイルで、iniファイル...
-
ファイル名の頭5桁と同名のフォ...
-
VBA GetAttrについて教えてくだ...
-
コマンドプロンプトのエラーに...
-
大量のフォルダからひとつのフ...
-
バッチでテキストファイルから...
-
コマンドプロンプトで作成日時...
-
バッチ処理でファイルの中身を...
-
アクセス 壊れた? 「ファイ...
-
Python CSVファイルについて
-
特定フォルダ内のファイルを自...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドプロンプトの「%1」と...
-
コマンドプロンプトでファイル...
-
バッチファイルで、iniファイル...
-
ExcelVBAのDirでスペース含むフ...
-
ftp処理でmove(移動)を行いたい
-
[DOS] コピー先に同じファイル...
-
バッチコマンドでファイル名の...
-
フォルダ内の更新日時が一番新...
-
コマンドプロンプトで変数が数...
-
ファイル名に ” を使うと エク...
-
DOSのバッチ作成について‐FORの...
-
access,vbaでフォルダ内のファ...
-
【DOSバッチ開発】末尾のタブの...
-
サブフォルダからファイルをコ...
-
スタートアップのファイルをバ...
-
エクセルVBAを使用してJPGファ...
-
バッチファイルで同一フォルダ...
-
バッチ処理で16進数でファイル...
-
コマンドプロンプトでのCSV...
-
ファイル名の頭5桁と同名のフォ...
おすすめ情報