After a test I have to revise my assumption, the order seems never be changed.
As you start one process per line and each process is independent, I assume that they are able to run in any order.
Many of them will be processed in your expected order, but not all.
The major problem are the special characters and also commas and quotes.
The special characters can be escaped with a simple caret, but a comma seems immune against any escaping.
Also linefeeds seems unescapable.
This seems a side effect of the wmic process call
syntax.
It can be solved with a helper batch, that can also be created via wmic
.
set "recv=(echo set param=%%*& echo(& echo(& echo setlocal EnableDelayedExpansion& echo set param=!param:\n=^^& echo(& echo(!& echo echo(!param!^>^>c:\temp\new.bat) "
setlocal EnableDelayedExpansion
wmic /node:%server% process call create "cmd.exe /c !recv!> c:\temp\recv.bat"
endlocal
timeout /t 2
This produces a batch file named recv.bat
set param=%*
setlocal EnableDelayedExpansion
set param=!param:\n=^
!
echo(!param!>>c:\temp\new.bat
Which can accept one parameter and split it into multiple lines.
recv.bat Line1\nLine2