Do you use track numbers at all in your file naming scheme? Are you saying that you just don't zero-pad the track numbers?
In this post I "documented" my initial approach for parsing the file name, using SED. This could be adapted to your needs, depending on your file naming scheme.
Can you tell us what you do use?
Edit: as a simple example, if your file naming scheme begins with the track number (which may be one or two digits), and then a space, you could replace the ReplaceCuesheetFileReference "function" with:
:ReplaceCuesheetFileReference
ECHO %1 | @tools@\SED 's/"\([0-9]\+\).*\.flac"/\1/'>%TMP%\trackno.txt
SET /P trackno=<%TMP%\trackno.txt
SET trackno=0%trackno%
SET trackno=%trackno:~-3,2%
ECHO s/FILE ".* - %trackno% - .*\.wav" WAVE/{FILE %trackno%}/>>sedlist.txt
ECHO @tools@\GSAR "-s{FILE %trackno%}" "-rFILE :x22%~1:x22 WAVE" -o "$cdartist$ - $album$.cue">>update-cuesheet.bat
GOTO :EOF
If your scheme is something more like "<artist> - <album> - <track> - <title>" then we could use the same function, with a different SED command:
ECHO %1 | @tools@\SED 's/".\+ - .\+ - \([0-9]\+\) - .\+\.flac"/\1/'>%TMP%\trackno.txt
The main problem here is that some characters that may be in your file name should be escaped before being passed to SED. Perhaps we need to create a general purpose script to do this: escape any string to be used in a SED command. That said, I've just tested with ampersand and caret in the file name, with no problems, so I may be getting confused here.
NB: You can of course test the SED commands on the command line by executing the following:
ECHO "<test file name>.flac" | SED 's/".\+ - .\+ - \([0-9]\+\) - .\+\.flac"/\1/'
E.g.:
ECHO "Artist 1 & Artist 2 - Album - Name - 8 - Track Title.flac" | SED 's/".\+ - .\+ - \([0-9]\+\) - .\+\.flac"/\1/'