ただ知りたいだけです:
最後の変更が今日ではない場合、「log.txt」を削除するにはどうすればよいですか?
バッチファイルで。
ここでは 1 ファイルについて話しているだけです。
ただ知りたいだけです:
最後の変更が今日ではない場合、「log.txt」を削除するにはどうすればよいですか?
バッチファイルで。
ここでは 1 ファイルについて話しているだけです。
PowerShell はバッチを置き換える必要があります。
if ((dir log.txt).LastWriteTime -lt [datetime]::today) { del log.txt }
You can use forfiles
:
forfiles /D -1 /M log.txt /C "cmd /c del @file"
残念ながら、堅牢で一般的な方法でこれを行うことはできません (*)。
Powershell、Cygwin、Unix ツールは、ターゲット マシンに確実にインストールできる場合は、完全に優れたソリューションです。
ワイルドカードと日数を含むパスを取得し、指定された日数よりも古いパスに一致するすべてのファイルを削除する小さなユーティリティ プログラムを作成しました。私の環境では、これはサードパーティのパッケージをインストールするよりも便利でした。
(*) 以下は、地域設定の短い日付形式に世紀が含まれている (つまり、10 文字の長さ) 限り、特定のケース (変更日が今日ではない) で機能します。しかし、N 日間は一般化されません。また、この種のことをコンピュータの地域設定に依存するのは好きではありません。
for %%i in (log.txt) do SET FILETIME=%%~ti
IF NOT "%FILETIME:~0,10%" == "%DATE%" DEL /f log.txt
バッチは単純なものを非常に複雑にします。Cygwin を使用できる場合、または Unix ツールをインストールできる場合は、次のようなことを検討してください。
find log.txt -mtime +1 -exec rm {} \;
更新純粋なバッチを使用して役立つ
可能性のあるものを見つけました。それを変更して、ニーズに合わせて調整できるはずです。
その価値のために、jscript または vbscript のいずれかを使用できます。これらのスクリプト言語は両方とも、90 年代半ばから MS プラットフォームにインストールされています。