No need.

Code:
savebuf -o <dialog> <id> "<file>"


Or:

Code:
filter -if <dialog> <id> "<file>"


If you want to loop anyway:

Code:
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:

Code:
var %i = 1
while ($did([color:red]<dialog>,[/color]<id>,%i) != $null) {
  write "<file>" $ifmatch
  inc %i
}