> 今月分がなかったら先月分をリネームコピーしたいだけ
これにどう日付計算が必要なの?そもそも日付計算くらい自前で計算出来るでしょ
今月が1月の時だけ前年の12月にするくらいだね。ifで判別すればいいだけだから計算は1月の時に"年-1"するだけ

今月の取得
set Y=%date:~0,4%
set M=%date:~5,2%
Mは頭ゼロになる
12パターンしか無いんだから if "%M%"=="01" から "%M%"=="12" までずらっと並べちまえばいい
バッチなんて頭悪い書き方(の方が|で)いいんだよ

タスクスケジューラで定期実行させるのか都度月1でダブルクリックか
先月のファイルが無い場合は?遡って順次処理?ファイル名形式に合う最後のファイルを今月に?
日付計算が必要で数値としての今月はこんな感じで取得出来る
for /f "tokens=1-3 delims=/" %%a in ("%date:~0,10%") do set /a "y=%%a, m=1%%b-100, d=1%%c-100"
UNIXTIMEもワンライナーで行ける
for /f "tokens=1-7 delims=/:. " %%a in ("%date:~0,10% %time: =0%") do set /a "y=%%a, m=1%%b-100, d=1%%c-100, h=1%%d-100, n=1%%e-100, s=1%%f-100, cs=1%%g, f=!(m/3), g=y-f, k=f*12+m-3, uTime=86400*(365*g+g/4-g/100+g/400+(306*k+4)/10+d-719469)+3600*h+60*n+s"