バッチ ファイルを使用して、1 つの拡張子 (たとえば .idf) を除くフォルダー内のすべてのファイルを削除します

バッチ ファイルを使用して、1 つの拡張子 (たとえば .idf) を除くフォルダー内のすべてのファイルを削除します

2 日以上経過したフォルダー内のすべてのファイルを削除する現在のコードは次のとおりです。

forfiles /p "C:\Test" /s /m *.* /c "cmd /c Del /F /Q @path" /d 2

ここに一つ.idf他のすべてのファイルの中で .idf ファイルだけを削除します。 .idf ファイル以外のすべてのファイルを削除したいのですが、現在のコードでそのファイルを無視するには何を変更すればよいでしょうか。 それが不可能な場合は、新しいコマンドがあれば助かります。

答え1

アプローチを少し改善するには:

  • 古いファイルのみを扱うには、keep forfileswithスイッチを使用します。/d -2
  • 拡張子のファイルを省略するには、for %Gwithを使用します。if /I [%~xG] neq [.idf].idf
  • %バッチ ファイルから実行する場合は、etc%%Gの代わりにすべてを 2 倍にします。%G
  • @echoデバッグが完了次第削除します。

コマンド:

forfiles /p "C:\Test" /s /m *.* /c "cmd /c for %G in (@path) do @if /I [%~xG] neq [.idf] @echo del /F /Q %G" /d -2

リソース(必読):

関連情報