%20%E3%82%92%E9%99%A4%E3%81%8F%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%E3%83%BC%E5%86%85%E3%81%AE%E3%81%99%E3%81%B9%E3%81%A6%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E5%89%8A%E9%99%A4%E3%81%97%E3%81%BE%E3%81%99%20.png)
2 日以上経過したフォルダー内のすべてのファイルを削除する現在のコードは次のとおりです。
forfiles /p "C:\Test" /s /m *.* /c "cmd /c Del /F /Q @path" /d 2
ここに一つ.idf他のすべてのファイルの中で .idf ファイルだけを削除します。 .idf ファイル以外のすべてのファイルを削除したいのですが、現在のコードでそのファイルを無視するには何を変更すればよいでしょうか。 それが不可能な場合は、新しいコマンドがあれば助かります。
答え1
アプローチを少し改善するには:
- 古いファイルのみを扱うには、keep
forfiles
withスイッチを使用します。/d -2
- 拡張子のファイルを省略するには、
for %G
withを使用します。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
リソース(必読):
- (コマンドリファレンス)Windows CMD コマンドラインの AZ インデックス
- (追加の詳細)Windows CMD シェルのコマンド ライン構文
- (
%~G
など特設ページ)コマンドライン引数(パラメータ)