質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

バッチファイル

バッチファイル(Batch File)は、Windowsのコマンドラインインタープリターによって複数のコマンドを実行させる事が出来るスクリプトファイルです。

Q&A

1回答

619閲覧

特定のフォルダ配下のファイル名を取得して、ファイルを削除するコマンドについて

Saki23_Saki

総合スコア0

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

バッチファイル

バッチファイル(Batch File)は、Windowsのコマンドラインインタープリターによって複数のコマンドを実行させる事が出来るスクリプトファイルです。

0グッド

0クリップ

投稿2022/02/21 06:27

いつもお世話になっております。

任意のフォルダからファイル名・サブフォルダ名を取得し、別のフォルダを対象に取得したファイル名・サブフォルダ名に一致するものを削除するバッチを考えています。下記の通り、For文の変数の使い方に苦戦しており、精鋭に皆様に教えてくださると嬉しい限りです。

例えば、下記のような処理です。
①下記の対象フォルダ(A)からファイル・サブフォルダを取得します。
②その後、対象フォルダ(B)から①で取得したものと一致するものだけ削除します。

対象フォルダ(d:¥bat¥for_files¥A) 
∟ファイル_X.txt
∟ファイル_Y.txt
∟サブフォルダ_Z

対象フォルダ(d:¥bat¥Delete_files¥B) 
∟ファイル_Q.txt
∟ファイル_Y.txt  ★削除される
∟サブフォルダ_Z  ★削除される。

下記のコマンドを考えました。
for分とDelete分の組み合わせで可能ではないかと考えているのですが、For文の変数の使い方の理解が深くなく、苦戦しております。

1.に対して

 for %%A in (d:¥bat¥for_files¥*) do ( Delete  )

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

Deleteと言うコマンドはありません
・単純なforではファイルとサブフォルダーを一度に取得は出来ません

CMD

1pushd d:¥bat¥for_files¥A 2rem ファイルの処理 3for %%A in (*) do if exist "d:¥bat¥Delete_files¥B\%%A" del "d:¥bat¥Delete_files¥B\%%A" 4rem サブフォルダーの処理 5for /d %%A in (*) do if exist "d:¥bat¥Delete_files¥B\%%A" rd "d:¥bat¥Delete_files¥B\%%A" 6popd

サブフォルダーが空で無い場合に中身含めてまるごと削除するなら、rd /s /qで。

投稿2022/02/21 07:15

otn

総合スコア86295

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Saki23_Saki

2022/02/22 04:31

大変分かりやすい回答いただきありがとうございます。 とても助かりました。 1点ご質問になるのですが、ファイル名1を部分一致で 対象フォルダBから削除することも可能なのでしょうか。 findstrという関数があり、可能な気もするのですが、 バッチからだと難しのですかね? 対象フォルダ(d:¥bat¥for_files¥A)  ∟ファイル1_X.txt ∟ファイル2_Y.txt ∟サブフォルダ3_Z 対象フォルダ(d:¥bat¥Delete_files¥B)  ∟ファイル1_Q.txt ★削除される ∟ファイル3_Y.txt   ∟サブフォルダ3_V  ★削除される。
otn

2022/02/22 05:43

「_ という文字以降は無視して、_ 以前が一致する物を削除」ということでしょうか? _ の文字が1つしか無いのであれば可能ですが、めんどくさいです。バッチファイル以外で書いた方が良い。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問