次のような NSIS コードがあります。
;Installer Sections
var /GLOBAL f1m
Function GetXML
StrCpy $path "/A/B/C/"
StrCpy $path "$path$R1"
${UpdateXml} "http://127.0.0.1/denwer/update.xml" $path $f1m
FunctionEnd
Function DownloadFiles
metadl::download /RETRYTIME=2 /MAXTRIES=2 /MD5 $f1m http://127.0.0.1/some.exe some.exe
Pop $R0 ;Get the return value
StrCmp $R0 "success" +3
MessageBox MB_OK "Download failed: $R0"
FunctionEnd
Section "Dummy Section" SecDummy
...
ReadRegStr $curver HKCU "Software\SomeSoft" "ver"
...
${For} $R1 1 10
Call GetXML
Call DownloadFiles
${Next}
...
SectionEnd
for ループのプログラムが "DowloadFiles" 関数を実行すると、for ループの先頭ではなくなります。ReadRegStr コマンドに戻るだけで、常に $f1m 変数の同じ値を取得し、ループに陥ります。
この行動の原因は何ですか?