Remove leading zeros in batch file
The method you found is very good. It supports numbers up to 99,999,999 and is very fast.
There is a simpler way to use SET /A that works with numbers up to 9999. It uses the modulus operation. The method cannot be extended to larger numbers.
set n=0027
set /a n=10000%n% %% 10000
The FOR /F method that Dale posted works with "any" size number (up to 8191 digits). However, it needs just a bit more work to handle zero values.
set n=000000000000000000000000000000000000000000000000000027
for /f "tokens=* delims=0" %%N in ("%n%") do set "n=%%N"
if not defined n set "n=0"
The exit command is pretty good at clearing leading zeros:
>set n=0000890
>cmd /c exit /b %n%
>echo %errorlevel%
890
With this you can use number up to 32 bit integer limit and the piece of code is really small, despite additional call of cmd.exe could harm the performance.
I found this problem when trying to solve a similar issue myself. I liked your solution until I realized there is a slightly better way:
SET /a N=1%N%+1%N%-2%N%