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

< 環境 >
Windows10

< 前提 >
・currentディレクトリ内に階層が異なる複数ディレクトリがあります
・その中に「THMBNLディレクトリ」が、任意の階層に複数あります
・この「THMBNLディレクトリ」内にある全ファイルに対して、以下2通りの処理を行いたいです

< やりたいこと >
A.currentディレクトリ内にある「THMBNL」内にある全ファイルを一括全削除
B.currentディレクトリ内にある「THMBNL」内にある全ファイルを、currentディレクトリにある一階層上の「hogeディレクトリ」へ一括移動。※一階層上が難しければ、C直下の「hogeディレクトリ」へ一括移動でも良いです

< 階層構成例 >
currentディレクトリ内
┣/THMBNL/xxxx.jpg
┣/a/THMBNL/xxxx.jpg
┣/b/c/THMBNL/xxxx.jpg
┣/d/e/f/THMBNL/xxxx.jpg
┣/g/h/i/j/xxxx.jpg

< 分からないなりに途中まで作成してみたコード >
A
SET TARGET=C:*\THMBNL\
for /d in (%TARGET%) do rmdir

B
SET TARGET=C:*\THMBNL\
for /d in (*) do (
cd %TARGET%
move * ../
)

A 回答 (1件)

> A.currentディレクトリ内にある「THMBNL」内にある全ファイルを一括全削除



は、サブディレクトリがあればそれも全部削除していいんですよね?

バッチファイルに書くとして、
cd /d A.current
for /r /d %%A in (THMBNL) do rd /s /q "%%A"

cd /d B.current
for /r /d %%A in (THMBNL) do move "%%A\*" "%%~dpA"
    • good
    • 0
この回答へのお礼

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

>サブディレクトリがあればそれも全部削除していいんですよね?
・はい

AもBも期待した通り動作したのですが、B最後の「"%%~dpA"」部分が難しかったです。
・変数として受け取った「"%%A"」を「~dp」する必要があるのはなぜですか? 「"%%A"」では何故ダメなのでしょうか??
・検索したら「ドライブ文字とパスだけに展開」と書いてあったのですが、どういうことですか??

お礼日時:2019/11/23 21:52

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