4か月前のフォルダをサブフォルダも含め消すバッチ

【PR】
※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。
FOR /F "usebackq" %%a IN (`powershell [DateTime]::Today.AddMonths"("-4")".ToString"("'yyyyMM'")"`) DO SET monthago=%%a

rmdir /s C:\path\to\%monthago

/q クワイエットモードを使うと事前に設定した変数が展開されない?

また、変数に「数字」は使えない?

FOR /F "usebackq" %%a IN (`powershell [DateTime]::Today.AddMonths"("-4")".ToString"("'yyyyMM'")"`) DO SET monthago=%%a

SET 4monthsagp=202311

となってもバッチないでは変数で置き換わらずに4が取れてmonthsgoとなってしまう。定義されていないので、当然置き換わらない。
ちなみにバッチではなくコマンドラインで実行した場合はちゃんと置き換わる

/qが使えない場合に自動でYを返すにはコマンドの頭に「echo Y|」を付ける

echo Y|rmdir /s C:\path\to\%monthago