処理が遅いという話なら処理の部分ないとアドバイスしようがないがそこ以外が遅いって話しなら…
ループ内でファイル毎にdoscmdするのは間違いなく遅いから
まずdir /o:s >> tmp.lstとかで更新日時付きのファイル一覧を作成して、これをファイル読み込みで順次処理する構造に変える
もちろんこのままだとスクリプト側で一つ一つ日時判定が必要なのでtmp.lst作るときにリダイレクト前にパイプでfindstr挟んで絞り込み済みのリストにしてしまう

という案はどうだろう?
ついでにもういっそuwscではフォイル名の切り出しすらやりたくないなら、さらにパイプでfindstr繋げて正規表現でファイル名を切り出しておけばいい
まあ、そこまでやるかはお好みでどうぞ