einerseits liesse sich per start /wait /low "jobname" "kommando" && "noch-mehr-von-dem-senf" eine einzeilige lösung basteln, dabei - ich geb es gern zu - kommt man schnell an die grenzen des normal erträglichen; sobald befehlszeilen selbst lang sind oder leerzeichen benötigen wird's halt immer wilder.
zum anderen liesse sich natürlich eine lösung stricken, die im scheduler selbst nur eine cmd startet, in der dann erst die "start /wait [...] && [...]"-aufrufe enthält oder gar mit "()" befehle schachtelt ... meine antwort bleibt nicht zufriedenstellend, was ganz genau du tun willst, kann so vielseitig sein ...
also eines sollte fast immer gehen im scheduler: cmd /c start /wait /low "alias" "..\job.cmd" - das garantiert erstens, dass er durch "cmd /c" eine "echte" batchumgebung nutzt, zweitens durch "start /low /wait" das er die umgebung erst wieder schliesst, wenn der job erledigt ist und mit niedriger priorität ausgeführt wird. es garantiert hier aber nicht, dass alle aufrufe aus der .cmd mit niedriger prio ausgeführt werden - dazu müssten die befehle in jeder zeile mit start /low begonnen werden.
ohne hier grossartig zu programmieren, sei dir aber doch nahe gelegt, eine scriptsprache zu nutzen. solche automatisierungen erledige ich sehr gern mit autoit, aber auch jscript oder vbscript tun es. da du von xp sprichst, ist powershell ja eher indiskutabel (da kommt jetzt sicher gleich protest ...)