Ja, soweit mir bekannt geht es nur mit dem for.
Linux ist da wohl was einfacher, aber WinDOS eben nicht so.
Und es ist keine For-Schleife, da schleift nichts. ;)
Es führt halt für jedes Argument die Befehle aus, und da du keinen Zähler, keine Liste mit Argumenten oder keine Datei mit einer Liste angibst, wird eben das angegebene Programm ausgeführt und das "Ergebnis"=die Ausgabe dessen in die Variablen gepackt.
Mit DOS-for kann man schon ne Menge machen, aber ja, die Syntax ist ein Graus. Ist halt erweitertes DOS von vor 25 Jahren oder so.
Theoretisch gibt es die Variante, die Ausgabe des Programms in eine Datei zu schreiben und das dann wieder in eine Variable zu laden.
Aber das funktioniert glaub ich nicht mit jedem CMD (irgendeine Option ist erforderlich) und es braucht eben temporäre Files.