質問: **最終的にやりたいこと** > > ログインする度に、指定フォルダ内にある、実行日より3日以前のフォルダを削除したい > > > ※算出基準日は「作成日時」を想定していますが、「更新日時」基準でも運用でカバーできるので大丈夫です --- **Q1.PowerShellだけで可能?** ・1日前や1カ月前をバッチファイルで計算することは大変(PowerShellを使えば簡単)と書いてあったのですが、上記なようなことをやりたい場合、PowerShellだけで出来ますか? ・それとも、バッチファイルからPowerShellを呼び出すのでしょうか? ・あるいは、バッチファイルだけで可能? --- **Q2.ログインする度に** ・バッチファイルの場合はStartupフォルダに入れればよいと思うのですが、PowerShellは? --- **試したこと** ・実行日より3日以前、が分からなかったので、日付の新しいフォルダ3つ以外を削除 ・意味はよくわかっていません ``` @ECHO OFF cd "L:\hoge" for /f "skip=3" %%A in ('dir /b /o-n') do rd /s /q "%%A" ```
回答: 古いWindowsに下記コマンドは入っていないかも知れませんがバッチファイルに以下の様に記述すれば良いかと。 forfilesはコマンドなので、forfiles /?なので仕様を確認してみてください。 ``` @echo off forfiles /P 対象のディレクトリ /D -3 /C "cmd /c if @isdir==TRUE rd /s /q @path" ``` ※見落としてました。基準は「作成日時」ということなので、ダメですね。 上記は「更新日時」を基準としています。