Один из способов выполнить вашу задачу:
- Выполнить итерацию машин с помощью
for
и установить их в массив,
это перезапишет записи дублета. - Читать(отсортированный по альфа) массив возвращается и сохраняется в исходной переменной (требуется отложенное расширение).
:: Q:\Test\2018\09\20\SO_52417320.cmd
@Echo off & Setlocal EnableDelayedExpansion
Set machines=node1,node2,node3,node2,node4,node1,node7,node6,node4
:: clear array machine[], then fill it
For /f "tokens=1 delims==" %%M in ('Set machine[ 2^>Nul') do Set "%%M="
For %%M in (%machines%) do Set "machine[%%M]=%%M"
Set machine[
Echo:
Set "machines="
For /f "tokens=2 delims==" %%M in ('Set machine[') do Set "machines=!machines!,%%M"
Echo:%machines:~1%
Пример вывода:
> SO_52417320.cmd
machine[node1]=node1
machine[node2]=node2
machine[node3]=node3
machine[node4]=node4
machine[node6]=node6
machine[node7]=node7
node1,node2,node3,node4,node6,node7