Malheureusement il n'y a aucune manière de faire la substitution variable augmentée (comme remplacer des caractères, ou extraire des caractères, etc. au moyen l'une ou l'autre variables de parm (%1, %2, %3,…) ou POUR les variables de boucle (%%A, %%B, %%C,…). Triste mais rectifier.
Si vous voulez garder le code mainline un petit décapant vous pourriez faire cette approche using une sous-routine appelée. Elle équilibre tous les espaces gauches ou bons de la corde passée, et stocke le résultat dans la variable appelée.
pour /f « delims= de tokens=1-5, » %%A dans ("%String%") font (
écho AVANT : %%A %%B %%C %%D %%E
appel : Équilibre « %%A » A
appel : Équilibre « %%B » B
appel : Équilibre « %%C » C
appel : Équilibre « %%D » D
appel : Équilibre « %%E » E
)
écho ENSUITE : %A% %B% %C% %D% %E%
pause
sortir /b
: Équilibrer la « entrée-corde » retourner-variable
placer s=%~1
pour /F « delims= de tokens=* » %%A en ("%s%") placent s=%%A
pour /L %%A dedans (1.1.50) faire si « ! s : ~-1 ! le « == » » a placé le s= ! s : ~0, - 1 !
ensemble %~2=%s%
sortir /b
~bp