So, I was in need of using something like a pointer in a batch script, and I wondered if it were possible. So I invented this little script to demonstrate a cmd variable usage that resembles using pointers, or what is fun to say, variable variables. I’m not sure if it works using the command.com interpreter, but it does work with cmd.exe. Let me know what you think. I named the script varvarbinks.cmd
@echo off :: setting up the pointer's value set pntClient=%1 :: set the value of what pntClient points to set %pntClient%=true :: output what %%pntClient%% would equal since %%pntClient%% :: does not work to a temp file for /f %%a in ('echo %pntClient%') do set %%a>%temp%varvar.tmp :: splits the variable and value up for /f "tokens=1,* delims==" %%a in (%temp%varvar.tmp) do ( set valofvar=%%b ) :: clean up the temp file erase /F /Q %temp%varvar.tmp echo The value of %pntClient% is %valofvar%
I wish I could get away with not using a temp file, but I haven’t figured out a way to do that yet. When you run, just run varvarbinks.cmd name-of-variable and it will show you that the name-of-variable is true.