Terminology question: nested vs. recursive

May 29, 2008
Groton, CT
This question is inspired by a recent note by Samintz, where Scott said,
I typically use setdos /X-4 to disable nested variable expansion. If
nested variable expansion is disabled (X-4), each variable is expanded
once, but variables containing the names of other variables are not
expanded further.
I had never used that before, and prior to seeing this description, I had thought that nested variable expansion meant expanding something like
set x=4
set x4=four
echo %[x%x]
I found that with SETDOS /X-4 and with SETDOS /X4 (or /X0) the result of the above code fragment is "four", and SETDOS /X-4 does not disable this. This is what I thought nested variables were.

Well it turns out that what SETDOS /X-4 affects is the expansion of a variable whose resultant string contains a % sign. I would have called that recursive or iterative variable expansion.

I would like to see the distinction between these two different cases made clear in the help, especially in the SETDOS /X help, and perhaps some index entry in the help file to find the section on the %[x%x] form. (I'm sure it's there, but I couldn't find an index entry to find it.)

(I was thinking of asking for a way to disable the %[x%x] form in SETDOS /X, but I can't think of what good that would do anybody.)

Compare nested variable expansion to nested function evaluation.

Nested function: %@eval[3 + %@date[1980-1-1]] Yes.
Nested variable? %[x%x] No.
Similar threads
Thread starter Title Forum Replies Date
S Terminology change Support 2
C forum Posting Question... Support 3
C question re: Move Support 3
S How to? Upgrade Question: What supporting documentation is required at time of purchase? Support 2
Peter Murschall Documentation Question to %@PSHELL Support 4
Fross Tab Question Support 6
Fross Quick Function Question Support 17
Dick Johnson Question about the Touch command Support 0
rps Documentation "Copy+Paste+run" question Support 2
vefatica SFTP question Support 17
vefatica Question about IPWorks Support 0
C How to? SHORTCUT question..... Support 6
vefatica TPIPE, crash and question Support 1
C Question / Suggestion Support 1
MickeyF Another TPIPE question Support 6
vefatica Another @EVERYTHING question Support 4
mikea How to? %@everything[] question Support 10
A License Question for Single User Support 5
Jay Sage Help Correction (and Related Question) Support 0
S Elapsed time in TCC prompt question Support 0
H command line parsing question Support 5
C Forum question Support 2
B Newbie here, I have a question. Support 4
J Dumb Question ... Support 4
Timothy Byrd Updating from TC 9 to TC 17 - TCTOOLBAR question Support 2
M A possibly stupid question about the "del" command... Support 7
M A just out of curiosity question re @DiskTotal Support 4
Fross Status Bar Time Question Support 1
A Stupid, obvious question - launch a BAT with TC Support 10
C How to? GLOBAL question Support 5
vefatica OT: VisualStudio question Support 1
vefatica Wildcard question Support 4
Dan Glynhampton v15 installer question Support 2
C Move question with Encrypted file... Support 6
M Maybe Maybe I'm being stupid (again), but a simple question... Support 4
C Message Board question Support 1
James Miller How to? filename completion question Support 1
C coding question Support 3
M A just-out-of-curiosity question because it's ... Support 6
Frank question to FOLDERMONITOR Support 14
C Dumb titleprompt question Support 4
M Upgrade Question Support 2
S option /u question Support 19
M How to? A probably stupid question re "@Files" and Include Lists... Support 2
M Just an out-of-curiosity question re. "Do ... /P ..." Support 31
M How to? An admittedly somewhat silly question regarding elevation... Support 2
M Just an out-of-curiosity question the List command vs. the @Lines function... Support 13
M PDir format question... Support 3
M A question about file compression that is just out of curiosity... Support 2
M How to? A very simple question re. the current line number in a batch file... Support 2

Similar threads