【bat】バッチファイルでファイル名に指定文字列を含まないファイルを削除する方法

バッチファイルを使用して、指定した文字列をファイル名に含まないファイルを削除する方法について詳しく解説します。特定のファイルを自動的に管理したいときに便利な手法です。この記事では、具体的なバッチファイルの作成手順とその実行方法をご紹介します。

バッチファイルの作成

以下のコードをエディタにコピーして貼り付けます。

@echo off
setlocal

rem 指定する文字列
set "keyword=指定文字列"

rem 対象ディレクトリ
set "targetDir=対象ディレクトリのパス"

rem 対象ディレクトリに移動
pushd "%targetDir%"

rem 各ファイルを確認し、指定文字列を含まないファイルを削除
for %%F in (*) do (
    echo %%F | findstr /i "%keyword%" >nul
    if errorlevel 1 (
        echo Deleting %%F
        del "%%F"
    )
)

rem 元のディレクトリに戻る
popd

endlocal
  • 指定文字列 には、削除対象から除外する文字列を指定します。
  • 対象ディレクトリのパス には、対象となるディレクトリのパスを指定します。

delete_files.bat などの名前で保存します。

注意事項

削除の前にバックアップを取る
バッチファイルを実行すると、指定した文字列を含まないファイルが削除されます。削除されたファイルは元に戻せないため、実行前にファイルのバックアップを取ることを強くお勧めします。

確認用にファイルのリストを表示する
実行前に、削除されるファイルのリストを確認するために、スクリプト内の del “%%F” を echo %%F に変更して、削除されるファイルを確認することができます。

まとめ

この記事では、バッチファイルを使って指定文字列を含まないファイルを効率的に削除する方法を紹介しました。この方法を活用することで、ディレクトリ内のファイル管理を自動化し、作業効率を向上させることができます。