43829


**最終的にやりたいこと**

> ログインする度に、指定フォルダ内にある、実行日より3日以前のフォルダを削除したい

※算出基準日は「作成日時」を想定していますが、「更新日時」基準でも運用でカバーできるので大丈夫です

* * *

**Q1.PowerShellだけで可能？**  
・1日前や1カ月前をバッチファイルで計算することは大変(PowerShellを使えば簡単)と書いてあったのですが、上記なようなことをやりたい場合、PowerShellだけで出来ますか？  
・それとも、バッチファイルからPowerShellを呼び出すのでしょうか？  
・あるいは、バッチファイルだけで可能？

* * *

**Q2.ログインする度に**  
・バッチファイルの場合はStartupフォルダに入れればよいと思うのですが、PowerShellは？

* * *

**試したこと**  
・実行日より3日以前、が分からなかったので、[日付の新しいフォルダ](http://qa.itmedia.co.jp/qa7808922.html)3つ以外を削除  
・意味はよくわかっていません

[code]

    @ECHO OFF
    cd "L:\hoge"
    for /f "skip=3" %%A in ('dir /b /o-n') do rd /s /q "%%A"
    
[/code]


CC BY-SA 4.0
2018-05-04T14:55:51.230
43786
2018-05-07T09:15:03.317
2018-05-07T09:15:03.317
7886
7886
question
windows
Windowsで、ログインする度に、指定フォルダ内にある、実行日より3日以前のフォルダを削除


古いWindowsに下記コマンドは入っていないかも知れませんがバッチファイルに以下の様に記述すれば良いかと。  
forfilesはコマンドなので、forfiles /?なので仕様を確認してみてください。

[code]

    @echo off
    forfiles /P 対象のディレクトリ /D -3 /C "cmd /c if @isdir==TRUE rd /s /q @path"
    
[/code]

※見落としてました。基準は「作成日時」ということなので、ダメですね。  
上記は「更新日時」を基準としています。


CC BY-SA 4.0
2018-05-07T01:30:13.830
43829
2018-05-07T05:10:58.663
2018-05-07T05:10:58.663
28283
28283
43786
answer