Rubyのpathnameとiteratorに影響されまくってたらDelphiのコードがこんなことに・・・
withはスタックに一時objectを生成するのに使っていて
変数宣言とオブジェクトの生成破棄をいっぺんに出来るので楽だけど
最早他人にはメンテ不可能なコードだなw

program CleanTemp;
uses uPath, uUtils;
begin
    with Path(Env('temp')) do // %temp%フォルダの
        with GetFileList('*.*', True).Each do while Loop do // サブディレクトリを含む全ファイルに対して
            if not It.Directory then // (ただしフォルダを除く)
                with TimeSpan(It.LastWriteTime) do // 現在からの時間差を取得して
                    if AsDay >= 7.0 then // 7日以上経過していたら
                        It.ShellDelete; // そのファイルをゴミ箱へ
end.