You could set a layout trigger to run on record commit that tests if the values match, and, of not, run that same Set Field operation.
What do you expect to end up with? With that loop setup, the first record will have a value posted, the script will then move to the next record and a new value will be posted, overwriting the first one, and so on to the end of the record set. So at the end, all you will be left with is the last value that was posted. This would seem to me to make all the previously posted values redundant—so why make them?