No need.
savebuf -o <dialog> <id> "<file>"
Or:
filter -if <dialog> <id> "<file>"
If you want to loop anyway:
var %i = 1
while ($did(<id>,%i) != $null) {
write "<file>" $ifmatch
inc %i
}
If it's
not inside an on dialog event, you'll need to supply the dialog name too:
var %i = 1
while ($did([color:red]<dialog>,[/color]<id>,%i) != $null) {
write "<file>" $ifmatch
inc %i
}