The thing about looping with $istok is that a replace string could, in some cases, contain the word it replaced. For example, looping with $reptok(%1-,WINE,WINE is not an emulator,32) will keep finding "WINE" even after the replacements

Another small thing with /var %1- = $1-, if $1- is a mathematical operation it would be evaluated (rare, but it happens). I prefer to use /set -ln %1- $1- in this case